问题遇到的现象和发生背景
期望输出最大值及其所在的行数和列数,但如图片所示输入不能实现
问题相关代码,请勿粘贴截图
运行结果及报错内容
我想要达到的结果
以此题为例,输出 700 3 3https://img-mid.csdnimg.cn/release/static/image/mid/ask/663103307356143.png "#left")
期望输出最大值及其所在的行数和列数,但如图片所示输入不能实现
以此题为例,输出 700 3 3https://img-mid.csdnimg.cn/release/static/image/mid/ask/663103307356143.png "#left")
一些小错误,如循环的一些值设置不对,修改如下:
#include <stdio.h>
#include <stdlib.h>
int main(void){
int a[3][4];
int i,j,t,row,column;
for(i=0;i<3;i++){
for(j=0;j<4;j++){ //数组的每一列的下标都是从0开始的,这里把1改为0
scanf("%d",&a[i][j]);
}
}
//最大值t初始化为二维数组第一个元素然后循环里比较和其他位置的的大小即可,
//在循环里重复赋值会覆盖掉先前比较得出临时的最大值 ,所以把t的初始化提出来,并只赋初始值
t=a[0][0] ;
for(i=0;i<3;i++){
for(j=0;j<4;j++){ //二维数组a有4列,下标从0到3,所以这里把3改为4
if(a[i][j]>t){
t=a[i][j];
//行数和列数比相应下标值都大1,所以在下标值的基础上都加1
row=i+1;
column=j+1;
}else{
continue;
}
}
}
printf("%d %d %d",t,row,column);
return 0;
}