我使这段代码正常工作,它遍历了数组并打印出最大的数字:
#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。 我哪里出错了?
答案 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
的行和列,而无需更改代码。