수안보중학교 로고이미지

RSS 페이스북 공유하기 트위터 공유하기 카카오톡 공유하기 카카오스토리 공유하기 네이버밴드 공유하기 프린트하기
⁠12. 5명 10문제 O, X채점하여 출력 결과와 같이 점수를 구하는 프로그램을 작성하시
작성자 수안보중학교 등록일 19.09.25 조회수 17

12. 510문제 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
---------------------------------------------


 

이전글 ⁠13. 10~30사이의 난수 10개를 발생시켜 오름차순으로 거품정렬하는 프로그램을 작성하
다음글 10. 3과목 점수를 입력하여 출력 결과와 같이 총점, 평균, 평균이 90점이상이면 ‘수'