2016-11-08 49 views
0

我完成了大部分代码。我唯一的问题是我必须确定最大总和的行和列的最后一部分。我设法得到并打印出最大的行和列的总和,但是,我想打印最大的总和所在的行和列的数量。因此,我不想打印最大总和的值,而是打印最大总和的行和列。确定最大总和的行和列

我希望你们大多数人都明白。

这里是我的代码

public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     int[][] arr = new int[10][10]; 
     int [] sumRow = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 
     int [] sumCol = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; 
     int sumAll = 0; 
     int largestRow=0; 
     int largestCol=0; 

     for(int i=0; i<arr.length; i++) { 
      for(int r=0;r<arr.length; r++){ 
       for(int c=0; c<arr.length; c++){ 
         arr[i][i] = (int)(Math.random()*10 + 1); 

       } 
       System.out.print(arr[i][i]+" "); 

       sumRow[i]= sumRow[i]+ arr[i][i]; 
       sumAll = sumAll+ arr[i][i]; 
       sumCol[r]=sumCol[r]+ arr[i][i]; 
       if(sumRow[i]>largestRow){ 
        largestRow=sumRow[i]; 
       } 
       if(sumCol[r]>largestCol){ 
        largestCol=sumCol[r]; 
       } 

      } 

     System.out.println(); 
     } 
     System.out.println("Sum for all the element is :" +" "+ sumAll); 
     System.out.println("Sum by row is :"); 
     for(int i=0; i<arr.length; i++) { 
      System.out.println((i+1) + ": " + sumRow[i]); 
    } 
     System.out.println("Sum by column is :"); 

     for(int i=0; i<arr.length; i++) { 
      System.out.println((i+1) + ": " + sumCol[i]); 
    } 
     System.out.println("The row with the largest sum is :" + " " + largestRow); 
     System.out.println("The column with the largest sum is :" + " " + largestCol); 

    } 
    } 
+0

提示:你还记得'largestRow = sumRow [i]'的值,你还可以记住行号。并回顾一下计算行和列总和的方式,那里有一个错误。 – Henry

+0

我怀疑这段代码的确如你所想。例如,你是否意识到你只写和覆盖你的ARR的对角元素?你是否知道,在运行变量'c'的循环中,你正在写入“arr.length” - 多少次到完全相同的字段?你使用你的数组的方式,一个简单的变量会做同样的事情,除了你不能要求这个变量的'长度'...无论如何保持编码! – dingalapadum

回答

0

申报2个整数:

int largestRowIndex=0; 
int largestColIndex=0; 

商店,我和R,当你发现最大rowSum colSum:

if(sumRow[i]>largestRow){ 
    largestRow=sumRow[i]; 
    largestRowIndex = i; 
} 
if(sumCol[r]>largestCol){ 
    largestCol=sumCol[r]; 
    largestColIndex = r; 
} 

使用它在印刷信息:

System.out.println("The row with the largest sum is :" + " " + largestRow + " at index " + largestRowIndex); 
System.out.println("The column with the largest sum is :" + " " + largestCol+ " at index " + largestColIndex);