正确的应该是这样,这里将错误处及改正标出:
#include
#include
int main()
{ int a[5][5]={0};
int i,j;
for(i=0;i<5;i++)
{
a[i][4]=0; /*这里添加一句,将做累加器的元素a[i][4]初始化为0, */
printf("请输入第%d位学生\n",i+1);
for(j=0;j<4;j++)
{
printf("科目分数%d:",j+1);
scanf("%d",&a[i][j]);
a[i][4]+=a[i][j]; /* a[i][5]+=a[i][j]; 这里的5应该改成4,最后一项的下标是4,你超界啦 */
}
printf("总分:%d\n",a[i][4]); /*这里也应该是a[i][4],你写成了a[i][5] */
printf("平均:%d\n",a[i][4]/4); /*这里也应该是a[i][4],你写成了a[i][5] */
}
system("pause");
}
你的第一次值是对的,第二次以后就错了,很可能是你没有把相关数值清零,比如a[5][5]
少了一个循环,应为双重循环的~~
贴完整代码看看,帮你找错