为什第一个循环可以输入学号,可是到了后面的循环就不可以
#include<stdio.h>
#include<stdlib.h>
struct student{
char xuehao[10];
char name[10];
int score[4];
};
void main()
{
int i=0,j,l,sum=0;
struct student stu[5];
for(i=0;i<5;i++)
{
printf("第%d学生的学号 ",i+1);//为什么在这个地方第一个循环可以输入学号,可是到了后面的循环就不可以了
gets(stu[i].xuehao);
printf("第%d学生的姓名 ",i+1);
gets(stu[i].name);
for(j=0;j<3;j++)
{
printf("第%d学生的成绩%d == ",i+1,j+1);
scanf("%d",&l);
stu[i].score[j]=l;
}
for(j=0;j<3;j++)
{
sum=sum+stu[i].score[j];
}
stu[i].score[3]=sum/3;
printf("第%d个学生的平均成绩==%d\n",i+1,stu[i].score[3]);
sum=0;
printf("\n");
}
}
[解决办法]
- C/C++ code
#include<stdio.h>#include<stdlib.h>struct student{ char xuehao[10]; char name[10]; int score[4];};void main(){ int i=0,j,l,sum=0; struct student stu[5]; for(i=0;i<5;i++) { printf("第%d学生的学号 ",i+1);//为什么在这个地方第一个循环可以输入学号,可是到了后面的循环就不可以了 gets(stu[i].xuehao); fflush(stdin); printf("第%d学生的姓名 ",i+1); gets(stu[i].name); fflush(stdin); //清除缓冲 for(j=0;j<3;j++) { printf("第%d学生的成绩%d == ",i+1,j+1); scanf("%d",&l); stu[i].score[j]=l; } for(j=0;j<3;j++) { sum=sum+stu[i].score[j]; } stu[i].score[3]=sum/3; printf("第%d个学生的平均成绩==%d\n",i+1,stu[i].score[3]); sum=0; printf("\n"); fflush(stdin); }}