求矩阵的最大数,及其行,列数。这样写为什么不正确?

int a[3][4],i,j,h,l,max;
for(i=0;i<3;i++)

{
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
}
max=a[i][j];
l=j+1;
h=l+1;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{

    if(a[i][j+1]>a[i][j])

    {
         max=a[i][j+1];
         h=i+1;
         l=j+2;
    }

}

}
printf("最大:%3d行:%3d列:%3d",max,h,l);
system("pause");

6个回答

图片说明

老显示的是最后一个数。为什么?

 if(a[i][j]>a[h-1][l-1])

    {
         h=i+1;
         l=j+1;
                max=a[i][j];
    }


xiaoxiaoxiaomi250
xiaoxiaoxiaomi250 回复tianliangcsdn: 上面的h改成i+1
5 年多之前 回复
tianliangcsdn
tianliangcsdn 不对的!
5 年多之前 回复

单步调试,看max变量值得变化

tianliangcsdn
tianliangcsdn 能说详细一点吗?该怎么改?谢谢
5 年多之前 回复

if(a[i][j]>max)

{
     h=i+1;
     l=j+1;
     max=a[i][j];
}
autocyz
autocyz 回复tianliangcsdn: 因为你这个if语句的意思是矩阵后一个元素比前一个大,就更新。所以总是显示的是最后一个。
5 年多之前 回复
tianliangcsdn
tianliangcsdn 为什么不对
5 年多之前 回复
tianliangcsdn
tianliangcsdn if(a[i][j+1]>a[i][j]) { max=a[i][j+1]; h=i+1; l=j+2; }
5 年多之前 回复
tianliangcsdn
tianliangcsdn if(a[i][j+1]>a[i][j]) { max=a[i][j+1]; h=i+1; l=j+2; }
5 年多之前 回复
tianliangcsdn
tianliangcsdn if(a[i][j+1]>a[i][j]) { max=a[i][j+1]; h=i+1; l=j+2; }
5 年多之前 回复

java代码这么写 你看看

int[][] a ={{3,2,9,66},{10,55,901,43},{28,24,23,29}};
int i, j = 0, h = 1, l = 1, max = 0;
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++){
System.out.println(a[i][j]);

        }
    }
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++) {
            if (a[i][j + 1] > max){
            max = a[i][j + 1];
            }
            h = i + 1;
            l = j + 2;
        }

    }
    System.out.println("最大:" + max + "行:" + h + "列:" + l);
    System.out.println("pause");
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐