Loops 如何在整个2D数组中查找最大值(处理)
我有一个2D数组,它有随机分配的值。我正在寻找这个2D数组中的最大值,以便将其显示为文本 我试着用这个循环来做这个,但是,它只给我数组中的最后一个值Loops 如何在整个2D数组中查找最大值(处理),loops,multidimensional-array,processing,Loops,Multidimensional Array,Processing,我有一个2D数组,它有随机分配的值。我正在寻找这个2D数组中的最大值,以便将其显示为文本 我试着用这个循环来做这个,但是,它只给我数组中的最后一个值 for (iRow=0; iRow<10; iRow++) { for (iCol=0; iCol<4; iCol++) { iHighestMark=0; if (iArray[iRow][iCol]>iHighestMark) { iHighest
for (iRow=0; iRow<10; iRow++)
{
for (iCol=0; iCol<4; iCol++)
{
iHighestMark=0;
if (iArray[iRow][iCol]>iHighestMark)
{
iHighestMark=iArray[iRow][iCol];
}
}
}
for(iRow=0;iRowiHighestMark=0;
对于(iRow=0;iRow,正如p.phidot所说,您需要在for循环外部初始化变量,否则,每次程序通过循环时,最大值都将重置为零。新代码修复了问题,但如果矩阵中的所有数字都是负数,我建议在代码中进行以下更改:
iHighestMark = Integer.MIN_VALUE;
for (iRow = 0; iRow < 10; iRow++) {
for (iCol = 0; iCol < 4; iCol++) {
if (iArray[iRow][iCol]>iHighestMark) {
iHighestMark=iArray[iRow][iCol];
}
}
}
iHighestMark=Integer.MIN\u值;
对于(iRow=0;iRow<10;iRow++){
对于(iCol=0;iCol<4;iCol++){
如果(iArray[iRow][iCol]>iHighestMark){
iHighestMark=iArray[iRow][iCol];
}
}
}
您应该将iHighestMark设置为零一次,而不是每次在内部循环中都设置为零。感谢您,这非常有效。我只是想知道,如果我将文本放在循环中,它会显示多个数字。但是,一旦我将其放在循环外,它会显示正确的数字?假设第3列为2列…在您的代码中:go 1st row>go 1st col>HiMark=0>ChkHiMark>2列>HiMark=0>ChkHiMark>3列>HiMark=0>ChkHiMark>1列结束,进入第2列>进入第1列>进入第1列>进入第2列>进入HiMark=0>ChkHiMark>2列>进入第3列>进入第3列>进入第1列>进入HiMark=0>ChkHiMark>2列>进入第3列>进入HiMark=0>ChkHiMark>end row 3,end row 2.| | | |因此HiMark在每次列迭代时都被重新设置为零。HiMark=0应该只发生一次。
iHighestMark = Integer.MIN_VALUE;
for (iRow = 0; iRow < 10; iRow++) {
for (iCol = 0; iCol < 4; iCol++) {
if (iArray[iRow][iCol]>iHighestMark) {
iHighestMark=iArray[iRow][iCol];
}
}
}