英文:
impossible to pass user's input to the array
问题
我正在尝试通过扫描器将用户输入传递给数组。目标是计算输入的平均值,这是代码:
public class pro {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
double[] str1 = new double[20];
for (int i = 0; i < 20; i++) {
str1[i] = scanner.nextDouble();
}
double average = Arrays.stream(str1).average().orElse(0.0);
System.out.println("平均值是:" + average);
}
}
英文:
I am trying to pass user's input to the array through a scanner. The goal is to make the average value of the inputs, this is the code:
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
double[] str1 = new int [20] ;
str1 = scanner.next.Double();
System.out.println("Average is: " + Arrays.stream(str1).summaryStatistics().getAverage());
}
}
答案1
得分: 1
以下两个语句存在语法错误,因此代码无法编译通过:
double[] str1 = new int[20];
str1 = scanner.next.Double();
你需要将双精度数组声明为 double[] str1 = new double[20];
你需要以以下方式输入双精度值:scanner.nextDouble();
由于 str1
是一个数组,我们不能直接将输入存储为 str1 = scanner.nextDouble();
,否则你的程序将会在编译时报错:
类型不匹配:无法从 double 转换为 double[]
为了解决这个错误,我们需要将每个输入的值存储在特定的索引位置,例如 str1[0] = scanner.nextDouble();
以下是根据你的需求编写的工作代码(根据我从你的问题中理解的):
Scanner scanner = new Scanner(System.in);
double[] str1 = new double[20];
for (int i = 0; i < 20; i++) {
str1[i] = scanner.nextDouble();
}
System.out.println("Average is: " + Arrays.stream(str1).summaryStatistics().getAverage());
我希望这能帮助你解决你遇到的错误。
英文:
Below 2 statements are having syntax error and because of this code will not compile:
double[] str1 = new int [20] ;
str1 = scanner.next.Double();
you need to declare double array as double[] str1 = new double[20];
you need to take the double value as input like this scanner.nextDouble();
and as str1 is array we can't store the input directly as str1 = scanner.nextDouble();
in that case your program will give compile time error
> Type mismatch: cannot convert from double to double[]
To resolve this error we need to store the value of every input at specific index like str1[0] = scanner.nextDouble();
Below is the working code as per your requirement(as I understand from your question):
Scanner scanner = new Scanner(System.in);
double[] str1 = new double[20] ;
for(int i = 0; i < 20;i++) {
str1[i] = scanner.nextDouble();
}
System.out.println("Average is: " + Arrays.stream(str1).summaryStatistics().getAverage());
I hope it will help you resolve the error you're facing.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论