读书人

为什第一个循环可以输入学号可是到了

发布时间: 2012-04-03 12:38:19 作者: rapoo

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

读书人网 >C语言

热点推荐