단순 연결리스트
도도한
단순연결리스트를 이용해 간단한 프로그램을 짜는거에요질문 내용 : =========================
1. 학생 추가
2. 학생 출력
3. 종료
=========================
메뉴선택 : 1 // 1번 누르면 학생1번 입력받아요
----------학생1----------
이름 : 일번
점수 : 100
=========================
1. 학생 추가
2. 학생 출력
3. 종료
=========================
메뉴선택 : 2 // 2번 누르면 입력받았던 걸 출력해요
----------학생1----------
이름 : 일번
점수 : 100
=========================
1. 학생 추가
2. 학생 출력
3. 종료
=========================
메뉴선택 : 1 // 학생 2번 입력받아요
----------학생2----------
이름 : 이번
점수 : 90
=========================
1. 학생 추가
2. 학생 출력
3. 종료
=========================
메뉴선택 : 2 // 학생 1번과 2번을 같이 출력해요
----------학생1----------
이름 : 일번
점수 : 100
----------학생2----------
이름 : 이번
점수 : 90
=========================
1. 학생 추가
2. 학생 출력
3. 종료
=========================
메뉴선택 : 3 // 종료
이런 프로그램을 짜야되는데요.
어제도 질문 드렸는데.. 그이후로 몇부분 추가했어요#includestdio.h
#includestdlib.htypedef struct student {
char name[10];
int grade;
int number;
struct student *link;
} data;int main()
{
int menu; data *p;
data *head; p-link=head;
head=p; p=(data *)malloc(2 * sizeof(data)); while(1)
{
printf(===================\n);
printf(1. 학생 추가\n);
printf(2. 학생 출력\n);
printf(3. 종료\n);
printf(===================\n);
printf(메뉴선택 : \n);
scanf(%d, menu);
} if(menu==1)
{
printf(이름:\n);
scanf(%s, p-name);
printf(점수:\n);
scanf(%d, p-grade);
}
if(menu==2)
{
printf(------%d번 학생-----\n);
printf(이름 : %s\n, p-name);
printf(점수 : %d\n, p-grade);
if(p-link!=null)
p=p-link;
} if(menu==3)
exit(1); return 0;
}여기서 고쳐야할 부분이 있다면 어딘가요? 디버깅은 되는데 버그창이 뜨네요ㅠㅠ
-
단순랩퍼
어떤 값을 연산하기 전에 그값은 초기화가 필요합니다.
그렇지 않으면 쓰레기값으로 연산하는 결과가 됩니다.
위 경우 p head를 선언하고 초기화 없이 대입연산을 하고 있습니다.
scanf함수로 int형을 받을땐 &가 필요합니다.
printf문 %d번 학생 뒤에 두번째 인수가 빠져있네요.