你数组搞错了,还有for的嵌套要带大括号
我给你改了 你看看
#include
//c语言:输入一组a[3][4]的数据,输出最大值及其行列地址位。
int main(){
int a[3][4],i,j,max,mi,mj;
for(i=0;i<3;i++){
for(j=0;j<4;j++){
scanf("%d ",&a[i][j]);
}
}
max=a[0][0];
for(i=0;i<3;i++){
for(j=0;j<4;j++){
if(max
max=a[i][j];
mi=i;
mj=j;
}
}
}
printf("%d %d %d\n",max,mi,mj);
return 0;
}
我怀疑
1)scanf有问题,所以建议把数组值打印一下
2)如果第一个值a[0][0]是最大的,那么mi,mj就没有赋值。
你是3*4的数组,但是循环里只输入了2*3
如果a[0][0]是最大的,那么mi,mj就不会赋值,结果就是不确定的
改成printf("%d %d %d",max,mi+1,mj+1);
循环的判断改为
i<3
j<4
所有的i<2,j<3都改为i<=2,,j<=3。试试