【问题标题】:Take the average of elements in array取数组中元素的平均值
【发布时间】:2016-09-19 17:57:59
【问题描述】:

所以我正在为明天的测验做准备,我正在玩数组,我询问用户想要输入多少个测试,然后询问每个测试的分数。我遇到的麻烦是总结测试,它没有总结所有,请帮助我

import java.util.Scanner;

public class Arrays {
    public static void main(String args []){
        int numOfElements;

        Scanner input = new Scanner(System.in) ;

        System.out.println("How many tests are you going to input? ");
        numOfElements = input.nextInt();

        double array[] = new double [numOfElements];

        for (int i=0; i<array.length; i++){
            System.out.println("Enter the test # " + (i+1) + ": ");
            array[i] = input.nextDouble();
        }


        for (int i = 0; i<array.length; i++ )
        {

            System.out.print("Test #"+(i+1)+"= "+array[i] + " pts\n");

        }


        for (int m= 0; m<array.length; m++)
        {   //average value

            double sum = 0;

            sum = sum + array[m]; //get the sum\

            double average = sum / array.length; //get the average value


            //print out the sum of elements in an array

            System.out.print("Your total points are: "+sum);

            //print out the average grade

            System.out.println("Your grades is "+average +"%");
        }


    }

【问题讨论】:

  • double sumdouble average 每次迭代都会重置,将它们声明为 for 循环外的局部变量,并在迭代完成后打印 averagesum

标签: java arrays sum average elements


【解决方案1】:

你的问题在这里:

double sum = 0

在每次循环迭代期间重置您的计数器!

因此,首先,您必须将该语句移到 for 循环的 front 中! “平均”也一样!

【讨论】:

    【解决方案2】:

    你应该总结循环中的分数。 之后,打印结果。

    double sum = 0;
    for (int m= 0; m<array.length; m++)
    {   //average value
    
        sum = sum + array[m]; //get the sum\
    
    
    }
    
    double average = sum / array.length; //get the average value
    
    
    //print out the sum of elements in an array
    
    System.out.print("Your total points are: "+sum);
    
    //print out the average grade
    
    System.out.println("Your grades is "+average +"%");
    

    【讨论】:

      【解决方案3】:

      double sumdouble average 每次迭代都会重置,将它们声明为 for 循环外的局部变量,并在迭代完成后打印平均值和总和

          double sum = 0;
          for (int m = 0; m < array.length; m++) {
              sum = sum + array[m];
          }
          System.out.print("Your total points are: " + sum);
          System.out.println("Your grades is " + sum / array.length + "%");
      

      在java8+中

          double array[] = new double[numOfElements];
          DoubleSummaryStatistics dss = Arrays.stream(array).summaryStatistics();
          System.out.println("average " + dss.getAverage());
          System.out.println("sum " + dss.getSum());
      

      【讨论】:

        猜你喜欢
        • 2013-12-29
        • 1970-01-01
        • 2018-09-01
        • 2022-01-11
        • 2013-08-02
        • 1970-01-01
        • 1970-01-01
        • 2018-02-25
        • 2014-04-17
        相关资源
        最近更新 更多