2016-10-26 7 views
0

このプログラムは、10個のユーザー入力整数を取り、配列に格納します。最大の値を見つけ、その値のインデックスを見つけるはずです。現在、最も大​​きな値が見つかる。配列値のインデックスを無効にする

しかし、私はその値のインデックスを見つける方法をよく分かりません。私は単純な解決策を過度に複雑にしているように感じます。どんな助けやアドバイスもありがとうございます、ありがとうございます!

public static void main(String[] args) { 

    int[] numbers; 
    numbers = new int[10]; 
    int largest = numbers[0]; 
    int counter; 

    Scanner keyboard = new Scanner(System.in); 

    System.out.println("Please enter 10 numbers: "); 

    for (counter = 0; counter < numbers.length; counter++) { 
     numbers[counter] = keyboard.nextInt(); 
    } 


    for (int i : numbers) { 

     if (i > largest) { 
      largest = i; 

     } 
    } 
    System.out.print("The largest number is: " + largest); 
    System.out.println(" "); 
    System.out.print("That number is stored at index " + ); 
    } 
} 

答えて

2

トラック最大かつその位置同時に

public static void main(String[] args) { 

    int[] numbers; 
    numbers = new int[10]; 
    int largest = numbers[0]; 
    int largest_i = 0; 
    int counter; 

    Scanner keyboard = new Scanner(System.in); 

    System.out.println("Please enter 10 numbers: "); 

    for (counter = 0; counter < numbers.length; counter++) { 
     numbers[counter] = keyboard.nextInt(); 
     if (numbers[counter] >= largest) { 
      largest = numbers[counter]; 
      largest_i = counter; 
     } 
    } 

    System.out.print("The largest number is: " + largest); 
    System.out.println(" "); 
    System.out.print("That number is stored at index " + ); 
    } 
} 
0

おそらくインデックス値を格納する「largestIndex」と呼ばれる変数を作成することができます。

foreachループを使用するのではなく、0からnumbers.lengthまで繰り返すforループを使用し、「最大」より大きい数値を見つけるたびにlargestIndex変数を更新します。

関連する問題