在以下Java代码中,我的平均温度是小数点后1位。
例如,而不是69.0
6.9
。
输入可以是任意10个数字。所以我要说输入10个温度,每个1个是10度。 10个输入的总数是100,所以平均值应该是10,但我的平均值是1.0。
代码:
import java.util.Scanner;
public class NumberAboveAverage {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
final int TotalTemps = 10;
double[] numbers = new double[TotalTemps];
double sum = 0;
double average = 0;
double max = 0;
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];
}
for (int i = 0; i < numbers.length; i++) {
sum = numbers[i];
}
average = sum / 10; //average is not an average of the numbers.
System.out.println("Average temp = " + average);
int count = 0;
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] > average) {
count++;
}
}
System.out.println(count + " days were above average");
}
}
答案 0 :(得分:10)
你实际上并没有将这些数字汇总在一起。
应为sum += numbers[i];
不是sum = numbers[i];
您似乎也试图这样做两次,这是不必要的。
答案 1 :(得分:1)
你总和两次(第二次for循环)并错误地执行:
sum = numbers[n];
而不是:
sum += numbers[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);
...
答案 2 :(得分:1)
您错过了+
sum = numbers[n];
需要
sum += numbers[n];
这没什么,
for (int i = 0; i < numbers.length; i++) {
sum = numbers[i];
}
答案 3 :(得分:-1)
替换
average = sum / 10;
与
average = sum / 10.0;