Code của mình thực hiện yêu cầu:Viết chương trình quản lí họ tên và điểm thi học kì và in ra danh sách các học sinh thi lại.(có điểm trung bình<5.0)
Khi build thì không có lỗi nhưng khi chạy thì lại có thông báo dừng chương trình do một nguyên nhân nào đó. Nhờ mọi người fix lại giúp mình.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
typedef struct hoc_sinh {
char ho_ten[20];
float diem;
struct hoc_sinh *tiep;
} sv_1;
sv_1 *hoc_sinh1=NULL,*hoc_sinh2=NULL;
char name[20];
float diem1;
int n=0;
do {
hoc_sinh1=(sv_1*)malloc(sizeof(sv_1));
if(hoc_sinh1==NULL)
printf("Khong du bo nho de cap phat");
else {
printf("Ho va ten:");
fflush(stdin);
gets(name);
if(strcmp(name,"")!=0) {
strcpy(hoc_sinh1->ho_ten,name);
printf("diem:");
scanf("%f",&diem1);
hoc_sinh1->diem=diem1;
if(n==0)
hoc_sinh2=hoc_sinh1;
hoc_sinh1=hoc_sinh1->tiep;
}
}
}
while(strcmp(name,"")!=0);
printf("danh sach cac hoc sinh thi lai.\n");
while(hoc_sinh2!=NULL) {
if((hoc_sinh2->diem)<5.0)
printf("%d\t%s\t%.1f",n+1,hoc_sinh2->ho_ten,hoc_sinh2->diem);
hoc_sinh2=hoc_sinh2->tiep;
}
return 0;
}