1

24行目で、コメントアウトされたエラーが発生しています。これを引き起こしている原因と、それを修正するにはどうすればよいですか?

どんな助けでも大歓迎です。よろしくお願いします。:)

import java.util.Scanner;

public class main {


    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        //initialize array
        double[] numbers = new double [10];

        //Create Scanner object
        System.out.print("Enter " + numbers.length + " values: ");

        //initialize array
        for ( int i = 0; i < numbers.length; i++){
            numbers[i] = input.nextDouble() ;
            java.util.Arrays.sort(numbers[i]); //getting an error here, thay says [The method sort(int[]) in the type Arrays is not applicable for the arguments (double)]
        //Display array numbers
        System.out.print(" " + numbers);            
        }

        //Close input
        input.close();

    }


}
4

3 に答える 3

3

単一の要素ではなく、配列全体を並べ替える必要があります。

Arrays.sort(numbers);

-loopの外側に移動することをお勧めしforます。Arrays.toString配列自体の内容を表示するために使用できます。

for (int i = 0; i < numbers.length; i++) {
   numbers[i] = input.nextDouble();
}
Arrays.sort(numbers);
System.out.print(Arrays.toString(numbers));

注:クラス名は大文字で始まります。例:MyMain

于 2012-12-01T16:17:28.543 に答える
3

これをforループのに置きます。

java.util.Arrays.sort(numbers);

数字ではなく数字に注意してください[i] 。印刷もそのループから出る必要があります

于 2012-12-01T16:18:28.427 に答える
1

あなたが犯している間違いは、あなたが単一の数をソートしようとしているということです。エラーメッセージは、sortメソッドが配列を予期していることを示しています。

アルゴリズムは、並べ替える前に、まずすべての数値を読み取る必要があります。したがって、コードを次のように変更します。

...

// first read in numbers
for ( int i = 0; i < numbers.length; i++){
    numbers[i] = input.nextDouble() ;
}

// then apply sort
java.util.Arrays.sort(numbers); // numbers is an array, so it's a valid argument.

// finally, after sorting you may now output the sorted array
for(int number : numbers){
    System.out.println(number);
}

...
于 2012-12-01T16:22:23.597 に答える