由于整数的平均值也应该是浮点值,所以a[i][N]=sum/N;这样不行。建议你把a数组和sum都声明为浮点型。
a[M][j]=sum/M;逻辑有错。题目似乎是要求列平均值,应该另想办法,不能兼用i、j以及sum了。
改后代码如下:
#define M 4
#define N 6
int main(int argc,char *argv[]){
double a[M+1][N+1],sum=0;
int i,j;
for(i=0;i<=N;a[M][i++]=0);//加这一行列平均值初值赋0
for(i=0;isum=0;
for(j=0;jscanf("%lf",&a[i][j]);
sum+=a[i][j];
a[M][j]+=a[i][j];//增加这一行求列和
}
a[i][N]=sum/N;
//a[M][j]=sum/M;
}
for(i=0;ifor( i=0 ; i for( j=0; j printf("%.1f\t",a[i][j]);//有改
printf("\n");
}
定义数组那里直接用M和N不行吗?干嘛还要加一