Câu hỏi đơn giản, in ra danh sách sinh viên bị lỗi

E chạy đến phần nhập điểm toán thì nó ngừng. Các bác chỉ lỗi giúp e với

    #include<stdio.h>
    struct sinhvien{
    	char hoten[100];
    	char masv[20];
    	float dtb;
    	float toan, ly, hoa;
    };

    typedef struct sinhvien Sinhvien;

    void nhap(Sinhvien sv[],int &n ) 
    {
    	printf("Nhap so sinh vien :");
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    	{
    		fflush(stdin);
    		printf("Nhap ho ten sinh vien %d:",i);
    		gets(sv[i].hoten);
    		fflush(stdin);
    		printf("Nhap MASV cua sinh vien %d:",i);
    		gets(sv[i].masv);
    		   printf("Toan:");
                   scanf("%f",sv[i].toan); 
    		printf("Ly:");
    		scanf("%f",sv[i].ly);
    		printf("Hoa:");
    		scanf("%f",sv[i].hoa);
    	}
    }

    void xuat(Sinhvien sv[],int n)
    {

    	printf("\t\t\tThong tin sinh vien \t\t\t");
    	for(int i=1;i<=n;i++)
    	{
    	printf("\nHo ten sinh vien %d:%s\n",i,sv[i].hoten);
    	printf("Ma sinh vien %d:%s\n",i,sv[i].masv);
    	printf("Diem toan:%.2f\n",sv[i].toan);
    	printf("Diem ly:%.2f\n",sv[i].ly);
    	printf("Diem hoa:%.2f\n",sv[i].hoa);
    	sv[i].dtb=(sv[i].toan+sv[i].ly+sv[i].hoa)/3;	
    	printf("Diem trung binh 3 mon:%.2f\n\n",sv[i].dtb);
    	}
    }

    int main()
    {
    	int n;
    	Sinhvien x[20];
    	nhap(x,n);
    	fflush(stdin);
    	xuat(x,n);
    }

Lỗi ở scanf

scanf("%f",&(sv[i].toan)); 

Đồng thời bạn sử dụng biến n cũng bị sai.

3 Likes

Thank you bác, cứ tưởng cái scanf chỉ cần địa chỉ chứ :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?