打印2D数组C ++的Maximum元素

时间:2018-09-21 18:08:14

标签: c++ multidimensional-array

我使这段代码正常工作,它遍历了数组并打印出最大的数字:

#include <iostream>
#include <string>
using namespace std;

int arr[2][5] ={{40,7,12,3,0},{10,2,30,9,8}};
int temp=0;

int main()
{
    for(int row=0; row>2; row++){
        for(int col=0; col>5; col++){
            if(arr[row][col]>temp)
            temp = arr[row][col];
            }

        }
        cout<<temp;
        return 0;
}

但是现在我重写了,我想我做错了,我得到了输出:每次运行都为0。 我哪里出错了?

1 个答案:

答案 0 :(得分:0)

您无需像在for循环中对行大小和列大小的值进行硬编码,而是可以这样得出它们的大小:

int rowsize = sizeof(arr)/sizeof (arr[0]);
int colsize = sizeof(arr)/(rowsize * sizeof (arr[0][0]));

然后您的for循环可以更改为:

for(int row=0; row<rowsize; row++){
    for(int col=0; col<colsize; col++){
        if(arr[row][col]>temp)
            temp = arr[row][col];
    }
}

如果执行此操作,则可以增加arr的行和列,而无需更改代码。