2016-11-08 10 views
0

私は自分のコードの大部分を完成させました。私の唯一の問題は、行と列を最大の合計で決定する必要がある最後の部分です。私は行と列の最大の合計を取得して印刷することができましたが、最大の合計がある行と列の数を出力したかったのです。したがって、最大合計の値を印刷する代わりに、最大合計の行と列を出力します。最大の和を持つ行と列を決定する

ほとんどの方がご理解いただければ幸いです。

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

印刷でそれを使用する:あなたは最大rowSum colSumを見つけるiとrは

int largestRowIndex=0; 
int largestColIndex=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 "と全く同じフィールドに何回も書き込んでいることに気付いていますか?あなたの配列を使用している方法では、単純な変数は同じことをしますが、あなたは 'length'のためにこの変数を尋ねることができませんでした。 – dingalapadum

答えて

0

宣言2つの以上の整数であります情報:

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);