Mình đọc sách đến phần này, mình thử làm 1 bài tập quản lí sinh viên dùng linked list nhưng gặp vấn đề
PHP Code:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct pp
{
char ht[40];
char diem[10];
struct pp*tiep;
} person;
person *pdau=NULL,*p,*last,*tam;
void khoitao();
void nhap();
main()
{
int i;
do
{
printf("Hay lua chon\n");
printf("1.Nhap them nguoi\n");
printf("2.Xoa 1 nguoi khoi danh sach\n");
printf("3.Tim kiem 1 nguoi trong danh sach\n");
printf("4.Liet ke danh sach\n");
printf("5.Thoat ra\n");
printf("Ban chon:\n");
scanf("&d",&i);
if(i==1) nhap();
if(i==2) xoa();
if(i==3) timkiem();
if(i==4) lietke();
if(i==4) thoat();
else printf("Moi ban nhap lai\n");
}while(i!=5);
}
//Ở đây mình chỉ đưa hàm nhập dữ liệu lên thôi, các hàm khác cũng gặp tình trạng tương tự
void khoitao()
{
if(pdau==NULL)
{
pdau=malloc(sizeof(person));
printf("\nNhap ho va ten\n");
scanf("%s",pdau->ht);
printf("Nhap diem\n");
scanf("%s",pdau->diem);
pdau->tiep;
}
return;
}
void nhap()
{
p=pdau;
if(p==NULL) khoitao();
else
{
last=malloc(sizeof(person));
if(last==NULL) printf("\nKhong du bo nho\n");
while(p->tiep!=NULL) p=p->tiep;
printf("Nhap ho va ten\n");
scanf("%s",&p->ht);
printf("Nhap diem\n");
scanf("%s",&p->diem);
last->tiep=NULL;
p->tiep=last;
}
return;
}
Vấn đề ở đây là khi mình ấn số 1 để nhập danh sách thì thấy các dòng chữ chạy liên tục như trong phim ý, mà mình thấy hàm của mình có vòng lặp nào đâu :((
Tương tự với các hàm khác, mình ấn số nào thì nó cũng chạy liên tục như thế
(ở đây mình chỉ post hàm nhập thôi, các hàm khác chắc cũng bị lỗi giống hàm này). Nhờ mọi người giúp