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

2024年11月19日 16:23
有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。试试