我正在编写这些程序,在第一个学生上输入时似乎可以运行,但是在第二个学生中,它没有读取我的第一个输入,即gets(student [i] .Fname);在打印方面。
我尝试通过用scanf替换gets使其更加具体。我最近没主意了...
for(i=0; i<5;i++)
{
printf("\nStudent no. %d\n", i+1);
printf("Enter First Name: ");
gets(student[i].Fname);
printf("Enter Last Name: ");
gets(student[i].Lname);
printf("Enter Middle Initial: ");
student[i].Minitial = toupper(getche());
printf("\nEnter Prelim grade: ");
scanf("%d", &student[i].Prelim);
printf("Enter Midterm grade: ");
scanf("%d", &student[i].Midterm);
printf("Enter Finals grade: ");
scanf("%d", &student[i].Finals);
ave[i] = ((float)student[i].Prelim+ (float)student[i].Midterm+ (float)student[i].Finals)/3;
}
我希望显示的内容类似于“输入名字:”,然后输入,然后输入“输入姓氏:”,依此类推。但是,当我在第一个学生中填写完这些内容后,结果是“输入名字:输入姓氏:”,然后输入了gets(student [i] .Lname)而不是gets(student [i] .Fname)