为什么输出的是这样呀,不应该是
123
456吗为什么第一行第二行的输出是相同的?导致本程序出不来预期效果
应该是因为定义存储输入数据的二维数组时用M和N来定义行和列,而此时M和N没有赋值,所以导致结果异常了,把定义二维数组放到获取了M和N的值后再定义即可,修改如下:
#include <stdio.h>
int main(void){
int i=0,j=0,M,N,max,mai,e,b,c,d;
printf("输入行和列:");
scanf("%d%d",&M,&N);
int a[M][N];
// printf("M=%d,N=%d\n",M,N);
printf("输入数组元素:");
for(i=0;i<M;i++){
for(j=0;j<N;j++){
scanf("%d",&a[i][j]);
}
}
mai=max=a[0][0];
e=b=c=d=0;
for(i=0;i<M;i++){
for(j=0;j<N;j++){
if(a[i][j]>=max){
max=a[i][j];
e=i+1;
b=j+1;
}
if(a[i][j]<=mai){
mai=a[i][j];
c=i+1;
d=j+1;
}
}
}
for(i=0;i<M;i++){
for(j=0;j<N;j++){
printf("%-5d",a[i][j]);
}
printf("\n");
}
printf("\n最大值:%d, 最小值:%d\n",max,mai);
printf("最大值位置%d行,%d列\n",e,b);
printf("最小值位置%d行,%d列\n",c,d);
return 0;
}