đây là code:
Code:
#include <stdio.h>
#include <conio.h>
#include <process.h>
int i,j,n,lc;
float tg;
struct sinhvien
{ char name[30];
int date;
float diem;
} sv[30];
void nhap()
{
printf("Nhap so luong sinh vien: "); scanf("%d",&n);
while (n<5||n>30)
{ clrscr();
printf("Nhap so luong sinh vien: "); scanf("%d",&n);
}
for (i=1; i<=n; i++)
{ fflush(stdin);
printf("\nnhap ten sinh vien thu %d: ",i); gets(sv[i].name);
printf("\nnhap ngay sinh cua sinh vien thu %d: ",i); scanf("%d",&sv[i].date);
printf("\nnhap diem sinh vien thu %d: ",i); scanf("%f",&sv[i].diem);
}
}
void sxdiem()
{
for (i=1; i<n; i++)
for (j=i+1; j<=n; j++)
if (sv[i].diem<sv[j].diem)
{ tg=sv[i].diem;
sv[i].diem=sv[j].diem;
sv[j].diem=tg;
}
}
void dscuoi()
{
sxdiem();
printf("\ndanh sach 5 sinh vien diem thap nhat");
for (i=n; i>n-5; i--)
printf("\nsinh vien %s diem %d",sv[i].name,sv[i].diem);
}
void main()
{
clrscr();
nhap();
clrscr();
printf("\n Menu");
printf("\n1.Hien danh sach sinh vien sap xep theo diem");
printf("\n2.Hien danh sach 5 sinh vien co diem thap nhat");
printf("\n3.Thoat");
printf("\nNhap menu ban chon: "); scanf("%d",&lc);
switch (lc)
{
case 1: sxdiem(); for(i=1; i<=n; i++)
printf("\nsinh vien %s diem %d ",sv[i].name,sv[i].diem);
break;
case 2: dscuoi();break;
case 3: exit(0);break;
}
getch();
}
chg trình trên chạy với đề bài là:
nhập số lượng và thông tin (họ tên, ngày sinh, điểm thi) của sinh viên. hiện menu lựa chọn 1: hiện dsách sv sx theo điểm, 2: hiện dsách 5 sv có điểm thấp nhất.
Đoạn code trên em mắc lỗi, khi nhập xong ngày sinh sv thì chg trình thoát ra và ko cho nhập điểm thi. Alt+F5 nó có dòng báo lỗi " scanf: floating formats not linked Abnormal program termination"
Các pro có thể giải thích cho em tại sao lại mắc lỗi đó đc ko??? thanks các pro