12. 5명 10문제 O, X채점하여 출력 결과와 같이 점수를 구하는 프로그램을 작성하시오. <프로그램 소스> #include <stdio.h> struct SJuk { char irum[8]; int dab[10]; // 학생답안 int jdsu; // 정답수 }; //********************************************************* // 답안을 채점햐여 정답수 -> hs[].jdsu jdab[]:정답 //********************************************************* void chaeJum(SJuk hs[], int jdab[]) { int i,j; for (i=0 ; i<5 ; i++) // 학생수만큼 반복 for (j=0 ; j<10 ; j++) // 문제수만큼 반복 if (hs[i].dab[j] == jdab[j]) // 맞추었으면 hs[i].jdsu++; } //********************************************************* void chulRyuk(SJuk hs[], int jdab[]) { int i, j; printf("---------------------------------------------\n"); printf("이름 1 2 3 4 5 6 7 8 9 10 점수\n"); printf("---------------------------------------------\n"); for (i=0 ; i<5 ; i++) // 학생수만큼 반복 { printf("%-8s", hs[i].irum); for (j=0 ; j<10 ; j++) // 문제수만큼 반복 if (hs[i].dab[j] == jdab[j]) // 맞았으면 printf(" O"); else // 틀렸으면 printf(" X"); printf("%7d\n", hs[i].jdsu*10); // 점수 } printf("---------------------------------------------\n\n"); } //********************************************************* int main() { SJuk hs[5] = { {"소백산", 3,1,2,1,1,2,3,4,4,3}, {"옥순봉", 1,1,2,4,1,2,3,4,3,1}, {"이수일", 3,2,1,4,1,2,3,3,1,2}, {"김수일", 1,2,3,3,2,2,3,4,1,2}, {"사인암", 1,2,3,2,1,2,3,4,1,2} }; int jdab[10] = {1,2,3,4,1,2,3,4,1,2 }; // 정답 chaeJum( hs, jdab); // 답안을 채점 chulRyuk(hs, jdab); printf("%d", hs); } <출력결과> --------------------------------------------- 이름 1 2 3 4 5 6 7 8 9 10 점수 --------------------------------------------- 소백산 X X X X O O O O X X 40 옥순봉 O X X O O O O O X X 60 이수일 X O X O O O O X O O 70 김수일 O O O X X O O O O O 80 사인암 O O O X O O O O O O 90 ---------------------------------------------
|
|