Java - 从用户输入创建数组

时间:2015-10-13 03:20:41

标签: java arrays for-loop

这是作业:

  
      
  1. 创建一个数组来存储10个数字。
  2.   
  3. 使用循环,提示用户输入10个等级并将其存储在数组中。
  4.   
  5. 然后创建另一个循环,将数组中的数字向后打印,并将数组中的数字相加。
  6.   
  7. 使用总和来计算数字的平均值。打印出数字的平均值。
  8.   

到目前为止我的代码:

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次。

2 个答案:

答案 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);
}