C语言求平均成绩用数组结构体的平均成绩不对

#include<stdio.h>
#define N 5

struct student
{char number[6];
char name[8];
int score[3];
int average;
}student[N];

int main()
{int i=0,j=0,sum=0,average=0;
for(i=0;i<N;i++)
{printf("输入第%d个学生以下相关信息:\n",i+1);
printf("学号:");
scanf("%s",student[i].number);
printf("姓名:");
scanf("%s",student[i].name);
for(j=0;j<3;j++)
{
printf("第%d门课程的成绩:",j+1);
scanf("%d",&student[i].score[j]);
}
}
for(i=0;i<N;i++)
{
for(j=0;j<3;j++)
sum+=student[i].score[j];
i++;
student[i].average=sum/3;
}
printf("学号 姓名 科目1 科目2 科目3 平均成绩\n");
for(i=0;i<N;i++)
{
printf("%2s%5s",student[i].number,student[i].name);
for(j=0;j<3;j++)
printf("%6d",student[i].score[j]);
printf("%8d\n",student[i].average);
}
}

//计算平均值的地方
for(i=0;i<N;i++)
{
    for(j=0;j<3;j++)
        sum+=student[i].score[j];
    i++;
    student[i].average=sum/3;
}  //这里错了,应该改成
for(i=0;i<N;i++)
{
    for(j=0;j<3;j++)
        sum+=student[i].score[j];
    student[i].average=sum/3;
    sum=0;        //每次算完要把sum重新至0,并不用手动i++
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-03-31
加一句sum=0;