在第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();
}
}
答案 0 :(得分:3)
您需要对整个数组进行排序,而不是单个元素:
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
。
答案 1 :(得分:3)
将此放在 for for循环之后:
java.util.Arrays.sort(numbers);
注意数字而非数字[i] 和打印也需要从该循环中退出。
答案 2 :(得分: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);
}
...