簡體   English   中英

將精度數字加倍到數組中,然后從最低到最高對數字進行排序和顯示

[英]double precision numbers into an array, then sort and display number from lowest to highest

在第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();

    }


}

您需要對整個數組而不是單個元素進行排序:

Arrays.sort(numbers);

最好將其移至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

將這個 for循環:

java.util.Arrays.sort(numbers);

注意數字而不是數字[i] 並且打印也需要退出該循環。

您犯的錯誤是您試圖對單個數字進行排序。 錯誤消息指出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);
}

...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM