首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什第一个循环可以输入学号,可是到了后面的循环就不可以,该如何处理

2012-04-03 
为什第一个循环可以输入学号,可是到了后面的循环就不可以#includestdio.h#includestdlib.hstruct stud

为什第一个循环可以输入学号,可是到了后面的循环就不可以
#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);     }} 

热点排行