Java,求一组数字的平均值

Java,求一组数字的平均值,java,average,Java,Average,在下面的Java代码中,我的平均温度是小数点后1位 例如,它不是69.0,而是6.9 输入可以是任意10个数字。假设我输入10个温度,每个1是10度。10个输入的总数是100,所以平均值应该是10,但是我得到的平均值是1.0 代码: import java.util.Scanner; 公营班级人数高于平均数{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(System.in); 最终整型总温度=10; double[]数字=新的double[TotalTemps];

在下面的Java代码中,我的平均温度是小数点后1位

例如,它不是
69.0
,而是
6.9

输入可以是任意10个数字。假设我输入10个温度,每个1是10度。10个输入的总数是100,所以平均值应该是10,但是我得到的平均值是1.0

代码:

import java.util.Scanner;
公营班级人数高于平均数{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
最终整型总温度=10;
double[]数字=新的double[TotalTemps];
双和=0;
双平均=0;
双最大值=0;
对于(int n=0;n最大值){
最大值=数字[n];
}
总和=数字[n];
}
for(int i=0;i平均值){
计数++;
}
}
系统输出打印项数(计数+“天数高于平均值”);
}
}
更换

average = sum / 10;


实际上,你并没有把这些数字相加

它应该是
sum+=number[i]

sum=number[i]

您似乎还试图这样做两次,这是不必要的。

您进行了两次求和(循环为秒),但错误地使用了:
sum=numbers[n]
而不是:
总和+=数字[n]


您应该将代码更改为:

...
         for (int n = 0; n < numbers.length; n++) {
            System.out.print("Enter a temperature: ");
            numbers[n] = input.nextInt();

            if (numbers[n] > max) {
               max = numbers[n];
            }
            sum += numbers[n];
         }

         // SECOND FOR LOOP REMOVED !!!

         average = sum / 10;
         System.out.println("Average temp = " + average);

        ...
。。。
对于(int n=0;n最大值){
最大值=数字[n];
}
总和+=数字[n];
}
//第二个循环被移除!!!
平均值=总和/10;
系统输出打印项次(“平均温度=”+平均值);
...

您缺少一个
+

sum = numbers[n];
需要

sum += numbers[n];
这没用,

 for (int i = 0; i < numbers.length; i++) {
    sum = numbers[i];
 }
for(int i=0;i
如果没有真实的数据,没有人能帮助你。请显示您的输入数据、结果以及您的期望。此外,您的问题可能是由于众所周知的浮点数不能准确表示十进制数的问题,再加上舍入错误。@jaielob这是因为您没有将它们相加。它到达末尾,将10除以总数(10),而不是总和(100)除以总数。尝试更多的案例,你会发现这就是原因。这不重要,因为总和是一个双倍数,并且持有双倍数。没有什么比不努力解释就填鸭式回答更重要的了。@hoverfullofeels你对我来说太快了:)再次检查@阿尔法辛:真的没有必要发布完整的代码。这看起来就像是你在给他答案。老兄,我一直对这里的人们回答问题的速度感到惊讶…是的,这是一个简单的解决办法,但尽管如此,我通读了整个程序,已经有3个答案了…啊,我现在明白了。非常感谢。我已经写了6个小时的代码了,我的脑袋都快晕过去了。这对我是Java的初学者也没什么帮助。
sum += numbers[n];
 for (int i = 0; i < numbers.length; i++) {
    sum = numbers[i];
 }