从2d阵列中找到最高总数并在JAVA中打印

时间:2014-04-29 14:56:09

标签: java arrays numbers 2d max

所以在这里我试图从数组中取一些int并按行添加它们。 然后我将总和存储为rowTotal。如果rowTotal大于maxRow .... 我累了。有人可以指出明显的吗?

     int maxRow = 0;
     int playNum = 0;

     for(int col = 0;col < score[0].length;col++)
        maxRow += score[0][col];
     for(int row = 1;row < score.length;row++)
     {
         int rowTotal = 0;
         for(int col = 0;col < score[row].length;col++)    
             rowTotal += score[row][col];
         if(rowTotal>maxRow)  
         {
             playNum = row;
             maxRow = rowTotal;
         }
         System.out.println("Player " + (playNum + 1) + " is victorious with a score of " + maxRow);
     }

4 个答案:

答案 0 :(得分:2)

你需要从第二个for {循环中取出System.out.println。此外,您可以取消第一个for循环。

 int maxRow = 0;
 int playNum = 0;
 for(int row = 0;row < score.length;row++)
 {
     int rowTotal = 0;
     for(int col = 0;col < score[row].length;col++) 
     {
         rowTotal += score[row][col];
     }
     if(rowTotal>maxRow)  
     {
         playNum = row;
         maxRow = rowTotal;
     }

 }
 System.out.println("Player " + (playNum + 1) + " is victorious with a score of " + maxRow);

答案 1 :(得分:0)

  1. 你从1开始行,应该是0
  2. 为什么要更改maxRow + = score [0] [col]; ?
  3. 这些应该可以解决您的问题,但我不知道它是什么

答案 2 :(得分:0)

System.out.println(..应该在循环之外。

否则我不会发现这个问题,除了代码可以改进(缩短)的事实。您得到了什么错误/意外结果?

答案 3 :(得分:0)

如果从索引0开始第二个for循环,那么就我所知,不需要第一个for循环。不知道你为什么要在第一个循环中总结maxRow,除非我完全忽略了这一点。