Java-从用户输入创建数组
以下是作业:Java-从用户输入创建数组,java,arrays,for-loop,Java,Arrays,For Loop,以下是作业: 创建一个数组来存储10个数字 使用循环,提示用户输入10个等级并将其存储在数组中 然后进行另一个循环,将数组中的数字向后打印,并将数组中的数字相加 使用总和计算数字的平均值。打印出数字的平均值 到目前为止,我的代码是: public static void ar() { double[] grades = new double[10]; Scanner kb = new Scanner(System.in); for(int i=0; i < gr
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for(int i=0; i < grades.length; i++)
grades[i]=kb.nextDouble();
double sum=0;
for(int j=10; j > grades.length; j--)
sum=sum+grades[j];
double ave = sum/10;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;igrades.length;j--)
总和=总和+等级[j];
双平均值=总和/10;
系统输出打印号(ave);
}
但是它只打印了10次0.0。您的
循环向后迭代的界限是错误的。您的意思是对(int j=10;j>=0;j--)使用
。请尝试以下代码:
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for (int i=0; i<grades.length; i++)
grades[i] = kb.nextDouble();
double sum = 0;
for (int j=grades.length-1; j>=0; j--)
sum = sum + grades[j];
double ave = sum / 10;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;i=0;j--)
总和=总和+等级[j];
双平均值=总和/10;
系统输出打印号(ave);
}
您的循环向后迭代的界限是错误的。您的意思是对(int j=10;j>=0;j--)使用
。请尝试以下代码:
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for (int i=0; i<grades.length; i++)
grades[i] = kb.nextDouble();
double sum = 0;
for (int j=grades.length-1; j>=0; j--)
sum = sum + grades[j];
double ave = sum / 10;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;i=0;j--)
总和=总和+等级[j];
双平均值=总和/10;
系统输出打印号(ave);
}
您的循环向后迭代的界限是错误的。您的意思是对(int j=10;j>=0;j--)使用
。请尝试以下代码:
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for (int i=0; i<grades.length; i++)
grades[i] = kb.nextDouble();
double sum = 0;
for (int j=grades.length-1; j>=0; j--)
sum = sum + grades[j];
double ave = sum / 10;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;i=0;j--)
总和=总和+等级[j];
双平均值=总和/10;
系统输出打印号(ave);
}
您的循环向后迭代的界限是错误的。您的意思是对(int j=10;j>=0;j--)使用
。请尝试以下代码:
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for (int i=0; i<grades.length; i++)
grades[i] = kb.nextDouble();
double sum = 0;
for (int j=grades.length-1; j>=0; j--)
sum = sum + grades[j];
double ave = sum / 10;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;i=0;j--)
总和=总和+等级[j];
双平均值=总和/10;
系统输出打印号(ave);
}
这里有一个带注释的解决方案,指示从初始代码更改了什么。你肯定是在正确的轨道上,只是一些小问题
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for(int i=0; i < grades.length; i++)
grades[i]=kb.nextDouble();
double sum=0;
for(int j=9; j >= 0; j--) //Note here that we've changed our condition. It was running zero times before. Additionally it now runs from 9-0, since the last index is 9
sum=sum+grades[j];
//Look out for Integer Arithmetic!
double ave = sum/10.0;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;i=0;j--)//注意这里我们已经更改了我们的条件。它以前运行了零次。另外,它现在从9-0运行,因为最后一个索引是9
总和=总和+等级[j];
//注意整数运算!
双平均值=总和/10.0;
系统输出打印号(ave);
}
这里有一个带注释的解决方案,指示从初始代码更改了什么。你肯定是在正确的轨道上,只是一些小问题
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for(int i=0; i < grades.length; i++)
grades[i]=kb.nextDouble();
double sum=0;
for(int j=9; j >= 0; j--) //Note here that we've changed our condition. It was running zero times before. Additionally it now runs from 9-0, since the last index is 9
sum=sum+grades[j];
//Look out for Integer Arithmetic!
double ave = sum/10.0;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;i=0;j--)//注意这里我们已经更改了我们的条件。它以前运行了零次。另外,它现在从9-0运行,因为最后一个索引是9
总和=总和+等级[j];
//注意整数运算!
双平均值=总和/10.0;
系统输出打印号(ave);
}
这里有一个带注释的解决方案,指示从初始代码更改了什么。你肯定是在正确的轨道上,只是一些小问题
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for(int i=0; i < grades.length; i++)
grades[i]=kb.nextDouble();
double sum=0;
for(int j=9; j >= 0; j--) //Note here that we've changed our condition. It was running zero times before. Additionally it now runs from 9-0, since the last index is 9
sum=sum+grades[j];
//Look out for Integer Arithmetic!
double ave = sum/10.0;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;i=0;j--)//注意这里我们已经更改了我们的条件。它以前运行了零次。另外,它现在从9-0运行,因为最后一个索引是9
总和=总和+等级[j];
//注意整数运算!
双平均值=总和/10.0;
系统输出打印号(ave);
}
这里有一个带注释的解决方案,指示从初始代码更改了什么。你肯定是在正确的轨道上,只是一些小问题
public static void ar() {
double[] grades = new double[10];
Scanner kb = new Scanner(System.in);
for(int i=0; i < grades.length; i++)
grades[i]=kb.nextDouble();
double sum=0;
for(int j=9; j >= 0; j--) //Note here that we've changed our condition. It was running zero times before. Additionally it now runs from 9-0, since the last index is 9
sum=sum+grades[j];
//Look out for Integer Arithmetic!
double ave = sum/10.0;
System.out.println(ave);
}
公共静态void ar(){
双[]等级=新双[10];
扫描仪kb=新扫描仪(System.in);
对于(int i=0;i=0;j--)//注意这里我们已经更改了我们的条件。它以前运行了零次。另外,它现在从9-0运行,因为最后一个索引是9
总和=总和+等级[j];
//注意整数运算!
双平均值=总和/10.0;
系统输出打印号(ave);
}
您正在尝试使用Javascript编写代码吗?还是用Java?差别很大。如果这是Java,请修复你的标题。你想用Javascript写吗?还是用Java?差别很大。如果这是Java,请修复你的标题。你想用Javascript写吗?还是用Java?差别很大。如果这是Java,请修复你的标题。你想用Javascript写吗?还是用Java?差别很大。如果这是Java,请修复您的标题。@CollinD因为变量sum
是一个double
,可以除以int
,仍然可以得到一个double
结果。很高兴知道!我不太确定Java会如何处理这个问题。@CollinD因为变量sum
是double
,所以可以除以int
得到double
的结果。很高兴知道!我不太确定Java将如何处理这个问题。@CollinD因为变量sum