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

以下是作业:

  • 创建一个数组来存储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);
    }
    
    公共静态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