C언어 array 질문드립니다.
조회수 361회
안녕하세요. 이제 막 C언어를 공부하기 시작한 초보입니다.
교과서 예제를 풀다가 이해가 되지 않는 부분이 있어 질문드립니다.
아래의 코드는 배열을 이용해 시험성적을 처리하는 프로그램입니다.
#define STUDENTS 3
#define ITEMS 25
main()
{
char key[ITEMS + 1], response[ITEMS + 1];
int count, i, student, n, correct[ITEMS + 1];
//READING OF CORRECT ANSWER//
printf("Input key to the items\n");
for (i = 0; i < ITEMS; i++)
scanf_s("%c", &key[i]);
scanf_s("%c", &key[i]);
key[i] = '\0';
//Evaluation Begins//
for (student = 1; student <= STUDENTS; student++)
{
count = 0;
printf("\n");
printf("Input responses of student - %d\n", student);
for (i = 0; i < ITEMS; i++)
scanf_s("%c", &response[i]);
scanf_s("%c", &response[i]);
response[i] = '\0';
for (i = 0; i < ITEMS; i++)
correct[i] = 0;
for (i = 0; i < ITEMS; i++)
if (response[i] == key[i])
{
count = count + 1;
correct[i] = 1;
}
//PRINTING RESULT//
printf("\n");
printf("Student - %d\n", student);
printf("Score is %d out of %d\n\n", count, ITEMS);
printf("Response to the item below are wrong : \n");
n = 0;
for (i = 0; i < ITEMS; i++)
if (correct[i] == 0)
{
printf("%d", i + 1);
n = n + 1;
}
if (n == 0)
printf("NIL\n");
printf("\n");
}//GO TO NEXT STUDENT//
}
위의 코드에서
- //READING OF CORRECT ANSWER//
printf("Input key to the items\n");
for (i = 0; i < ITEMS; i++)
scanf_s("%c", &key[i]);
scanf_s("%c", &key[i]); <- 왜 for 반복문에서 scanf_s를 하고 빠져나와서 다시 scanf_s를 하는지,
key[i] = '\0'; <-이 부분은 초기화 과정인가요? 이 부분이 왜 필요한지 잘 모르겠습니다.
감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력