3장 연습문제
1. 학생 10명의 국어, 영어, 수학 성적을 처리하는 프로그램을 작성하시오. 단, 배열을 사용하여 학생들의 학번, 국어, 영어, 수학, 총점, 평균을 저장하시오.
[출력 형식] 학번 국어 영어 수학 총점 평균 ********************************************* 1 80 70 90 240 80 |
답 안 |
|
#include <stdio.h>
void main() { int num[4]= {1,2,3}; int kor[4] = {80,70,90}; int eng[4]= {88,77,99}; int math[4] = {81,71,91}; int i, total, avg;
puts(" 학번 국어 영어 수학 총점 평균", stdout); puts("***********************************", stdout);
for(i=0;i<3;i++) { total= kor[i] + eng[i] + math[i]; avg= total/3; printf("%4d%6d%6d%6d%6d%6d\n",num[i],kor[i],eng[i],math[i],total,avg); } } | |
|
2. 다차원 배열을 이용하여 키보드로부터 5개의 문자열을 입력받아서 화면에 출력하는 프로그램을 작성하시오.
답 안 |
|
#include <stdio.h>
void main() { int i; char array[5][50];
for(i=0;i<5;i++) { printf("%d번 문자열 : ", i+1); gets(array[i]); } printf("입력완료\n출력\n");
for(i=0; i<5; i++) printf("입력된 %d번 문자열 : %s\n",i+1, array[i]); } | |
|
3. 두 개의 문자열을 입력받아서 문자열이 같은지 다른지를 출력하는 프로그램을 작성하시오.
답 안 |
|
#include <stdio.h>
void main() { int i; char array[2][20]; for(i=0;i<2;i++) { printf("%d번 문자열 : ", i+1); gets(array[i]); }
for(i=0; array[0][i]!='\0'; i++) if(array[0][i] != array[1][i]) { printf("%d번째가 이상해요\n",i+1); return 0; } puts("두 문자열이 똑같습니다.",stdout); } | |
|
4. 포인터를 사용하여 실수값 2개를 교환하여 저장하고 출력하는 함수를 만드시오.
답 안 |
|
#include <stdio.h>
void main() { float a,b; int *p1=&a; int *p2=&b; int temp;
printf("1번 실수값 입력 : "); scanf("%f",&a); printf("2번 실수값 입력 : "); scanf("%f",&b);
printf("교환전 1번 : %g, 2번 %g\n", a,b);
temp=*p1; *p1=*p2; *p2=temp;
printf("교환후 1번 : %g, 2번 %g\n", a,b); } | |
|
5. 다음과 같은 두 개의 행렬의 곱을 구하는 프로그램을 작성하시오.
|
답 안 |
|
#include <stdio.h>
void main() { int a[3][3] = {{3, 2, 5}, {9, 2, 8}, {6, 1, 2}}; int b[3][4] = {{9, 8, 3, 1}, {6, 2, 1, 2}, {8, 3, 2, 5}}; int i, j;
for(i=0; i<3; i++) { printf("|"); for(j=0; j<4; j++) printf("%4d", a[i][0]*b[0][j] + a[i][1]*b[1][j] + a[i][2]*b[2][j]); printf("|\n"); } } | |
|
6. 입력받은 문자열을 역순으로 출력하는 reverse 함수를 작성하시오.
답 안 |
|
#include <stdio.h>
void main() { char str[100]; int i,count=0;
printf("입력 : "); gets(str);
for(i=0;str[i]!='\0';i++) count++; printf("reverse : "); for(i=count-1;i>=0;i--) printf("%c",str[i]); printf("\n"); } | |
|
7. 이름과 생년월일과 오늘 날짜를 입력받아서 이름과 함께 오늘이 태어난지 몇칠째가 되었는지를 출력하는 프로그램을 작성하시오. 단, 구조체를 사용하시오.
답 안 |
(윤년 무시) |
#include <stdio.h>
void main() { struct birthday{ char name[10]; int birth_year; int birth_month; int birth_day; }birthday;
int birth, today, year, month, day;
printf("이름 : "); gets(birthday.name);
printf("생년 : "); scanf("%d",&birthday.birth_year);
printf("생월 : "); scanf("%d",&birthday.birth_month);
printf("생일 : "); scanf("%d",&birthday.birth_day);
printf("현년 : "); scanf("%d",&year);
printf("현월 : "); scanf("%d",&month);
printf("현일 : "); scanf("%d",&day);
birth = (birthday.birth_year*365)+(birthday.birth_month*30)+(birthday.birth_day); today = (year*365)+(month*30)+(day);
printf("==========\n%s 님 %d일 경과\n", birthday.name, today-birth); } | |
|
'Book' 카테고리의 다른 글
[한빛미디어] 인터넷 프로그래밍 입문 2장 연습문제 (0) | 2009.04.13 |
---|---|
[한빛미디어] 인터넷 프로그래밍 입문 1장 연습문제 (0) | 2009.04.13 |
[한빛미디어] C로 배우는 쉬운 자료구조 (연습문제 4장) (0) | 2009.04.10 |
[한빛미디어] C로 배우는 쉬운 자료구조 (연습문제 2장) (1) | 2009.04.10 |
[한빛미디어] C로 배우는 쉬운 자료구조 (연습문제 1장) (0) | 2009.04.10 |