[JW0004-3],[JW0004-4] 퀴즈-3 (14-15장) 문제, 답

Post Reply
kiwoon Moon
Posts: 12
Joined: Mon Dec 29, 2014 5:29 pm

[JW0004-3],[JW0004-4] 퀴즈-3 (14-15장) 문제, 답

Post by kiwoon Moon »

문제 1
1번.JPG
1번.JPG (141.43 KiB) Viewed 5519 times
답 -1

Code: Select all

  1 #include<stdio.h>
  2 #include<string.h>
  3
  4 int main(void) {
  5     char stu[10][10];
  6     int point[10][5];
  7     double stuavg[10];
  8     double class_total[6];
  9     double class_avg[6];
 10     char col[6][10] = {"국어", "영어", "수학", "과학", "총점", "평균"};
 11
 12     char temp[10];
 13
 14     int i;
 15     for(i=0; i<10; i++) {
 16         printf("(list입력시 입력된 정보 나열)\n");
 17         printf("이름 입력: ");
 18         if(scanf("%s", temp) < 0) {
 19             return printf("종료");
 20         } else if( !strcmp(temp,"list") ) {
 21             printf("        %6s %8s %8s %8s %8s %8s\n", col[0], col[1], col[2], col[3], col[4], col[5]);
 22
 23             for(int k=0; k<i; k++) {
 24                 printf("%6s %6d %6d %6d %6d %6d %6.2lf\n", stu[k], point[k][0], point[k][1], point[k][2], point[k][3], point[k][4], stuavg[k]);
 25
 26             }
 27
 28             for(int k=0; k<6; k++) class_total[k] = class_avg[k] = 0;
 29
 30             for(int k=0; k<5; k++) {
 31                 for(int j=0; j<i; j++)
 32                     class_total[k] += point[j][k];
 33                 class_avg[k] = class_total[k]/i;
 34             }
 35
 36             for(int k=0; k<i; k++) class_total[5] += stuavg[k];
 37             class_avg[5] = class_total[5]/i;
 38
 39             printf("%6s %6.2lf %6.2lf %6.2lf %6.2lf %6.2lf %6.2lf\n", col[4], class_total[0], class_total[1], class_total[2], class_total[3], class_total    [4], class_total[5]);
 40             printf("%6s %6.2lf %6.2lf %6.2lf %6.2lf %6.2lf %6.2lf\n", col[5], class_avg[0], class_avg[1], class_avg[2], class_avg[3], class_avg[4], class    _avg[5]);
 41
 42             i--;
 43             continue;
 44         } else {
 45             strcpy(stu[i], temp);
 46             point[i][4] = 0;
 47             for(int j=0; j<4; j++) {
 48                 printf("\n%s 점수 입력: ", col[j]);
 49                 if(scanf("%d", &point[i][j]) < 0) {i--; break;}
 50                 point[i][4] += point[i][j];
 51             }
 52             stuavg[i] = point[i][4]/4;
 53         }
 54     }
 55 }
문제 2
2번.JPG
2번.JPG (131.03 KiB) Viewed 5519 times
답 -2

Code: Select all

  1 #include<stdio.h>
  2
  3 double cal_bmi(double cm, double kg) {
  4     double v=(kg/cm/cm)*10000;
  5     if(v>0) return v;
  6     else -1;
  7 }
  8
  9 char * print_bmi(double bmi) {
 10     if (bmi<0) return "에러";
 11     else if(bmi <18.5) return "저체중";
 12     else if(bmi<23) return "정상";
 13     else if(bmi<25) return "과체중";
 14     else if(bmi<30) return "비만";
 15     else return "고도비만";
 16 }
 17
 18 void main(void) {
 19     double cm, kg;
 20     cm=kg=0;
 21
 22     double (*fptr_cal_bmi)(double, double) = cal_bmi;
 23     char* (*fptr_print_bmi)(double) = print_bmi;
 24
 25     printf("\n키 입력: ");
 26     scanf("%lf", &cm);
 27     printf("\n체중 입력: ");
 28     scanf("%lf", &kg);
 29
 30     printf("비만도: %s\n", fptr_print_bmi(fptr_cal_bmi(cm,kg)));
 31 }

Post Reply