有三个学生,四门成绩,求平均成绩,用二维数组定义

第一条的平均成绩和第三条的平均成绩都是对的,但是第二条的为什么不对呢?求高手指教,才开始学C,很多不懂,代码如下:
# include <stdio.h>void main(){int i,j;float a[3];float b[3][4]={{85,98,56,87},{78,85,79,78},{98,96,88,80}};for(i=0;i<3;i++) { for(j=0;j<4;j++) a[i]=a[i]+b[i][j]; a[i]=a[i]/4.0; }printf("四个学生的平均分分别为: ");printf("\n%5.1f,%5.1f,%5.1f,%5.1f,%5.1f\n ",b[0][0],b[0][1],b[0][2],b[0][3],a[0]);printf("\n%5.1f,%5.1f,%5.1f,%5.1f,%5.1f\n ",b[1][0],b[1][1],b[1][2],b[1][3],a[1]);printf("\n%5.1f,%5.1f,%5.1f,%5.1f,%5.1f\n ",b[2][0],b[2][1],b[2][2],b[2][3],a[2]);}
运行的结果是这样子,第二个学生的平均成绩是-1.$。

第1个回答  2015-06-20
for(i=0;i<3;i++)
{
a[i]=0.0; //a[i] 要赋初值
for(j=0;j<4;j++)
a[i]=a[i]+b[i][j];
a[i]=a[i]/4.0;
}本回答被提问者和网友采纳