2016-11-08 81 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);