2017-11-29 2 views
-4
0 1 2 3 

0 5 10 1 5 
1 1 2 1 15 
2 8 7 5 3 
3 6 1 12 1 

これは2次元配列です。すべての行の合計を見つける必要があり、出力は最高のインデックスを出力する必要があります合計値。2d配列のすべての行から最大値のインデックスを取得する方法

私のコードは、行2のために私に合計23を与えるが、私は答え2(インデックス)をしたいの代わりに、23(合計)あなたは現在の隣に、インデックスを追跡する必要が

public static int indexofHighestRowSum (int[][] a) 
    { 
     int i,j, sum, n=0; 
     for (i=0; i<a.length; i++) 
     { 
      sum =0; 
      for (j=0; j<a[0].length; j++) 
      { 
        sum += a[i][j]; 
      } 

      if (sum >n) 
       n=sum;` 
     } 
     return a[index]; 
    } 
+0

サイトがどのように動作しているか、トピックに関するトピックはこちらをご覧ください。それに応じてあなたの質問を編集してください。参考:[小規模プログラムのデバッグ方法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) –

+0

'sum'の代わりに' i'をnに保存する – azro

+0

その後、nを返します。いい答えだ !しかし、私はindex = 0を使用し、sum> nのときはindex = iを返し、indexを返します。 – Asrar

答えて

0

最高額。次に、見つかった一番上の行のインデックスを返すことができます。

public static int indexofHighestRowSum(int[][] a) { 
    int i, j, sum, n = 0, index = 0; 
    for (i = 0; i < a.length; i++) { 
     sum = 0; 
     for (j = 0; j < a[0].length; j++) { 
      sum += a[i][j]; 
     } 

     if (sum > n) { 
      n = sum; 
      index = i; 
     } 
    } 

    return index; 
} 
関連する問題