c语言:下面我敲的代码,运行时候出来的结果怪怪的,请大神帮我看看哪里出了问题?

2024-11-19 16:23:15
推荐回答(6个)
回答1:

你数组搞错了,还有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;

}

回答2:

我怀疑
1)scanf有问题,所以建议把数组值打印一下
2)如果第一个值a[0][0]是最大的,那么mi,mj就没有赋值。

回答3:

你是3*4的数组,但是循环里只输入了2*3
如果a[0][0]是最大的,那么mi,mj就不会赋值,结果就是不确定的

回答4:

改成printf("%d %d %d",max,mi+1,mj+1);

回答5:

循环的判断改为
i<3
j<4

回答6:

所有的i<2,j<3都改为i<=2,,j<=3。试试