Java 尝试在每次添加内容时取平均值

Java 尝试在每次添加内容时取平均值,java,Java,嘿,伙计们,我对java真的很陌生,数学也很糟糕,我应该制作一个程序,允许用户输入一个值,求平均值,打印出来,然后允许输入另一个值,求平均值,打印出来,然后继续。当我在每个输入的末尾除以2时,我是不是出错了?那是错误的。您添加的每个数字相对于其他数字的权重为50%。 您需要跟踪计数(元素数)和总和,每次将总和除以元素数。 因此,每次添加数字时,函数应为: (旧平均数*旧计数+新计数)/(旧计数+1) 或者只使用SUM和COUNT,每次平均值=SUM/COUNT。 inc.每增加一个数字,按1计数

嘿,伙计们,我对java真的很陌生,数学也很糟糕,我应该制作一个程序,允许用户输入一个值,求平均值,打印出来,然后允许输入另一个值,求平均值,打印出来,然后继续。当我在每个输入的末尾除以2时,我是不是出错了?

那是错误的。您添加的每个数字相对于其他数字的权重为50%。 您需要跟踪计数(元素数)和总和,每次将总和除以元素数。 因此,每次添加数字时,函数应为:

(旧平均数*旧计数+新计数)/(旧计数+1)

或者只使用SUM和COUNT,每次平均值=SUM/COUNT。 inc.每增加一个数字,按1计数。
inc sum除以输入的数字。

平均值是所有数字的总和除以总和中的数字数

你在这里做的不是一般的。您正在将每个新数字的一半加到总数中。我不知道你在这里干什么

为了让事情更容易理解,让我们做一个
求和
和一个
计数器

package gradeAvg;
import java.util.Scanner;
//Grade Average calculater
public class GradeAvg {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        System.out.print("Please Enter the first grade being added to the average:");
        double average = input.nextInt();
        System.out.print("The average is now: " + average + " Please enter the second grade being averaged:");
        average += input.nextInt() ;
        System.out.print("The average is now: " + average + " Please enter the third grade being averaged:");
        average += input.nextInt() / 2;
        System.out.print("The average is now: " + average + " Please enter the fourth grade being averaged:");
        average += input.nextInt() / 2;
        System.out.print("The average is now: " + average + " Please enter the fifth grade being averaged:");
        average += input.nextInt() / 2;
        input.close();
        System.out.print(average);




    }

}
每次您要一个数字时,您都会增加计数器并将新的数字添加到
总和中

public class GradeAvg {

    public static void main(String[] args) {
        int sum;
        int counter;
        // ...
    }

}
然后,您可以按如下方式输出平均值:

int newNumber;
// ask for input
newNumber = input.nextInt()
sum += newNumber;
counter++;

完整的工作解决方案。。。希望对你有帮助

System.out.println("The average is: " + (double)sum / counter);
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
双和=0;
整数计数=1;
双平均=0;
System.out.print(“请输入要添加到平均值中的“+计数+”分数:”);
计数
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    double sum = 0;
    int count = 1;
    double average = 0;
    System.out.print("Please Enter the " + count + " grade being added to the average:");
    for (; count <= 5;) {
        sum = sum + input.nextInt();
        average = sum / count;
        System.out.println("The average is now: " + average);
        count++;
        if (count <= 5)
            System.out.println("Please enter the " + count + " grade being averaged:");
    }
    input.close();
}