C语言:一道二维数组的小题啊,跪求解答!!

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:00:48
在一个4×6的实型二维数组中,将各行前5列元素的平均值分别放在同一行的第6列上。这样做为什么不对呢???

#include<stdio.h>
main()
{
int a[3][4],i,j;
float sum,ave;
printf("请输入12个数:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);

for(i=0;i<4;i++)
for(j=0;j<5;j++)
{sum+=a[i][j];
ave=sum/3;
a[i][6]=ave;
}
for(i=0;i<4;i++)
printf("%d",a[i][5]);

}
#include<stdio.h>
main()
{
int a[3][4],i,j;
float sum,ave;
printf("请输入20个数:\n");
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);

for(i=0;i<4;i++)
for(j=0;j<5;j++)
{sum+=a[i][j];
ave=sum/3;
a[i][6]=ave;
}
for(i=0;i<4;i++)
printf("%4d",a[i][5]);

}

这个是有改动了下 可还是不对

你的数组声明得小了吧...
4*6的应该是a[4][6]才对啊

#include<stdio.h>
main()
{
int a[3][4],i,j; //这里也不对,应该是a[4][6]
float sum,ave;
printf("请输入12个数:\n");
for(i=0;i<3;i++) //这里应该是i<4
for(j=0;j<4;j++) //这里应该是j<6
scanf("%d",&a[i][j]);

for(i=0;i<4;i++)
for(j=0;j<5;j++) //这里应该是j<6
{sum+=a[i][j];
ave=sum/3;
a[i][6]=ave; //这里错了,应该是a[i][5]
}
for(i=0;i<4;i++)
printf("%d",a[i][5]);

}

a[i][6]=ave;
错了啊,你下面printf的时候反倒知道是a[i][5]了

你的数组定义怎么是3行4列.