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