KU COSE101 2018기말고사 6번 문제
2016 기출 | 1번 | 2번 | 3번 | 4번 | 5번 | |
2017 기출 | 1번 | 2번 | 3번 | 4번 | 5번 | |
2018 기출 | 1번 | 2번 | 3번 | 4번 | 5번 | 6번 |
기존 기출 문제에 오류가 있어 약간 수정하였습니다.
보안상 특별한 방에 입실할 때 id를 입력하면 id 별로 입실 횟수를 기록하는 시스템을 개발하였다. 이 시스템은 예를 들어 최근 6회의 입실 기록을 다음과 같이 보여준다. 여기서 -1은 입실기록의 끝을 나타낸다.
Enter id: 6927238
Enter id: 3428529
Enter id: 2800555
Enter id: 2900123
Enter id: 3428529
Enter id: 6927238
Enter id: -1
id: 2800555 (1)
id: 2900123 (1)
id: 3428529 (2)
id: 6927238 (2)
이 프로그램은 다음 그림 1과 같이 linked list 구조를 이용하여 출입을 관리하고, linked list는 id를 등록할 때 항상 정렬된 상태를 유지한다.
#include<stdio.h>
#include<stdlib.h>
struct Node{
int id;
int count;
struct Node* next;
};
typedef struct Node* NodePtr;
NodePtr head;
void print_report() {
for(NodePtr p = head->next ; p!=NULL; p = p->next) {
printf("id: %d (%d)\n",p->id, p->count);
}
}
void record_entry(int id) {
}
int main()
{
int id;
for(;;){
printf("Enter id: ");
scanf("%d", &id);
if(id < 0) break;
record_entry(id);
}
print_report();
}
Comments