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);
}
}
ヒント: 'largestRow = sumRow [i]'という値を覚えているところで、行番号を覚えておくこともできます。行と列の合計を計算する方法を見直して、そこに間違いがあります。 – Henry
私はこのコードが、あなたが思っていることをするのではないかと疑います。たとえば、あなたはあなたのarrの対角要素にのみ上書きしているという事実を認識していますか?実行変数 'c'のループでは、" arr.length "と全く同じフィールドに何回も書き込んでいることに気付いていますか?あなたの配列を使用している方法では、単純な変数は同じことをしますが、あなたは 'length'のためにこの変数を尋ねることができませんでした。 – dingalapadum