这是作业:
- 创建一个数组来存储10个数字。
- 使用循环,提示用户输入10个等级并将其存储在数组中。
- 然后创建另一个循环,将数组中的数字向后打印,并将数组中的数字相加。
- 使用总和来计算数字的平均值。打印出数字的平均值。
醇>
到目前为止我的代码:
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);
}
然而它只打印了0.0次。
答案 0 :(得分:3)
你的for
循环向后迭代的界限是错误的。你的意思是使用for (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);
}
答案 1 :(得分:0)
这是一个带注释的解决方案,指示从初始代码更改的内容。你肯定是在正确的轨道上,只是一些小问题。
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);
}