간단 문제 풀이
[C 배열] 채점하기
nodeal
2017. 12. 14. 00:39
반응형
학생들의 답안을 채점하는 프로그램을 작성하세요. 다음과 같은 2차원 배열이 학생들이 제출한 답이며, 모든 문제는 객관식으로 정답이 1~4입니다. 5명의 학생이 각각 10문제에 대한 답을 다음과 같이 제출했습니다. 문제의 정답은 프로그램 실행 시에 주어집니다.
학생 1 | 1 3 2 4 3 1 4 2 2 1
학생 2 | 3 2 4 2 2 1 1 3 4 1
학생 3 | 2 4 3 2 1 2 1 3 3 4
학생 4 | 2 3 3 1 1 3 2 2 4 4
학생 5 | 3 1 1 2 4 1 2 3 1 3
입력)
1번 문제의 정답을 입력하세요 : 3
2번 문제의 정답을 입력하세요 : 2
3번 문제의 정답을 입력하세요 : 3
4번 문제의 정답을 입력하세요 : 2
5번 문제의 정답을 입력하세요 : 4
6번 문제의 정답을 입력하세요 : 2
7번 문제의 정답을 입력하세요 : 3
8번 문제의 정답을 입력하세요 : 1
9번 문제의 정답을 입력하세요 : 3
10번 문제의 정답을 입력하세요 : 2
출력)
학생 1의 점수 : 0 점
학생 2의 점수 : 3 점
학생 3의 점수 : 4 점
학생 4의 점수 : 1 점
학생 5의 점수 : 3 점
#include <stdio.h> int main() { int student_answer[5][10] = { {1, 3, 2, 4, 3, 1, 4, 2, 2, 1}, {3, 2, 4, 2, 2, 1, 1, 3, 4, 1}, {2, 4, 3, 2, 1, 2, 1, 3, 3, 4}, {2, 3, 3, 1, 1, 3, 2, 2, 4, 4}, {3, 1, 1, 2, 4, 1, 2, 3, 1, 3} }; int score[] = {0, 0, 0, 0, 0}; for (unsigned int i = 0; i < 10; i++) { int answer = 0; printf("%d번째 문제의 정답을 입력하세요: ", i); scanf("%d", &answer); for (unsigned int j = 0; j < 5; j++) if (answer == student_answer[j][i]) score[j]++; } for (unsigned int i = 0; i < 5; i++) printf("학생 %d의 점수: %d\n", i, score[i]); return 0; }
반응형