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

结构体描述学生信息有关问题

2012-08-08 
结构体描述学生信息问题C/C++ code/*有10个学生,每个学生的数据包括,学号,姓名,3门课的成绩,从键盘输入10

结构体描述学生信息问题

C/C++ code
/*有10个学生,每个学生的数据包括,学号,姓名,3门课的成绩,从键盘输入10个学生的数据要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分数)*/#include<stdio.h>#define N 2struct student {    int num;    char name[10];    int score[3];    float aver;}stu[N];void main(){    int i,j,max=0,maxi=0,sum=0;  //maxi最高分学生的序号    float average=0;    for(i=0;i<N;++i)    {        scanf("%d %s",&stu[i].num,&stu[i].name);        for(j=0;j<3;j++)        {            scanf("%d ",&stu[i].score[j]);        }    }    for(i=0;i<N;i++)    {        for(j=0;j<3;j++)            sum+=stu[i].score[j];        stu[i].aver=sum/3.0;       //每个学生的平均分        average+=stu[i].aver;      //学生的平均分之和        if(sum>max)               //判断最高分学生的序号          {            max=sum;            maxi=i;        }    }    average/=N;                   //亲,这才是总平均分哦,    printf("No.  name   score1  score2  score3 average\n");        for(i=0;i<N;++i)    {        printf("%d,%s",stu[i].num,stu[i].name);        for(j=0;j<3;j++)        {            printf("%9d",stu[i].score[j]);            printf("%8.2f\n",stu[i].aver);        }    }    printf("average=%6.2f\n",average);    printf("The highest score is %d,score total:%d.",stu[maxi].name,max);}

输入语句有误,求解

[解决办法]
//在每次循环时,sum为什么不重置为0?
for(i=0;i<N;i++)
{
for(j=0;j<3;j++)
sum+=stu[i].score[j];
stu[i].aver=sum/3.0; //每个学生的平均分
average+=stu[i].aver; //学生的平均分之和

if(sum>max) //判断最高分学生的序号
{
max=sum;
maxi=i;
}

}

热点排行
Bad Request.