这是一个myprogramminglab问题。 我给了一个数组(a2d),我需要确定每个行和列是否与每个其他行和列具有相同数量的元素。如果是,那么我将布尔值isSquare设置为true。
我已经提出了以下代码,但它不喜欢它,并没有给我任何关于如何改进它的建议。
for(int row = 0; row < a2d.length; row++){
for(int col = 0; col < a2d[row].length; col++)
if(a2d.length == a2d[row].length)
isSquare = true;
else
isSquare = false;
}
我是以错误的方式测试,还是有更好的方法?
由于
答案 0 :(得分:5)
不需要2个循环,你应该可以做这样的事情(我不打算提供代码,因为它是家庭作业)
1. Save the length of the array (a2d.length)
2. Loop over all the rows
3. Check to see if the given row has the same length
4. if Not return false
5. if you reach the end of the loop return true
答案 1 :(得分:1)
for (int i = 0, l = a2d.length; i < l; i++) {
if (a2d[i].length != l) {
return false;
}
}
return true;
您只需要确保第二维数组的所有长度与第一维数组的长度相同。
答案 2 :(得分:0)
if(a2d.length == a2d[row].length)
isSquare = true;
else
isSquare = false;
如果最后一个元素通过,则将始终返回true。试试这个:
isSquare = true;
for(int row = 0; row < a2d.length; row++){
for(int col = 0; col < a2d[row].length; col++)
if(a2d.length != a2d[row].length)
isSquare = false;
}