2017-05-05 48 views
1

最小値のインデックス番号を12個の配列の配列に戻す必要があります。私はそれを実行するたびに結果として12を得続けます。ここに私のコードです:配列内の最小値のインデックス番号を見つける

minRain = leastRain(months); 

public static int leastRain (double[] mon4){ 
    int lowest = (int) mon4[0]; 

    for (int index=1; index<mon4.length; index++){ 
     if (mon4[index]<lowest) 
      lowest = index; 
    } 
    return lowest; 
} 

System.out.println("The month with the lowest amount of rain is: " + (minRain + 1)); 
+0

うーん私は、私たちは[XY問題](HTTPSを持っているかなり確信して答えを提供することができながら、 ://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)ここで質問を編集して "X"を教えてください:)? – niceman

+0

最初に「最低」を最低値に設定し、それをループ内のインデックス値に設定しています。インデックスと値を別々に追跡する必要があります。 –

答えて

0

あなたは最低の最低と最低のインデックスを格納する必要があります。今すぐ値を比較しています< last_index

2

これはあなたが作ったばかげた間違いです。配列値の代わりに変数にインデックスを割り当てました。これを行う:

public static int leastRain (double[] mon4){ 
    int lowest = 0; 

    for (int index=1; index<mon4.length; index++){ 
     if (mon4[index]<mon4[lowest]) 
      lowest = index; 
    } 
    return lowest; 
} 
+0

ああ私は見る!出来た!ありがとう –

3

この文の意味はなんですか?

アレイの最初の値を最低値として保存し、後で配列値と比較します。実際には、インデックスと配列の値を比較しています。

if (mon4[index]<lowest) // comparing lowest as an array value 
    lowest = index;  // saving the index as the lowest value 

このようなことを行う必要があります。

if (mon4[index]<mon4[lowest]) // comparing value of 'index' 'vs. 'lowest' index location 
    lowest = index; 
2

あなたはlowestに配列値を割り当てるので、以下に示すように、それを変更されています

public static int leastRain (double[] mon4){ 
    int lowestIndex = 0;//set index as 0 instead of array value 
    int lowestValue = mon4[0]; 
    for (int index=1; index<mon4.length; index++){ 
     if (mon4[index] < lowestValue) 
      lowestIndex = index; 
    } 
    return lowestIndex; 
} 
+0

値を探していませんが、最も低い値が格納されている配列アドレス –

+0

上記のコードを見ることができます – developer

関連する問題