Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如何在整个2D数组中查找最大值(处理)_Loops_Multidimensional Array_Processing - Fatal编程技术网

Loops 如何在整个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

我有一个2D数组,它有随机分配的值。我正在寻找这个2D数组中的最大值,以便将其显示为文本

我试着用这个循环来做这个,但是,它只给我数组中的最后一个值

  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;iRow
iHighestMark=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];

      }
   }
}