【发布时间】:2013-10-31 13:18:47
【问题描述】:
我需要编写一个应用程序,它可以将 10 000 个用户输入的值存储在一个数组中,并且可以返回所有值的总和和所有值的平均值。如果用户写入数字“0”,则必须停止输入。有一些条件需要满足:
- 值需要存储在数组中
- 用户输入的数据必须在while循环内
- 分析(可以说是数学)必须在用户输入完成后进行。
- 不允许应用循环任何空元素。
这是我今天在课堂上得到的额外作业。
到目前为止,我已经写了这个:
import java.util.Scanner;
public class Ovning_54 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] list;
list = new int[10000];
int sum = 0;
int avr = 0;
int x = 0;
int number;
System.out.print("Add number " + (x + 1) + ": ");
number = input.nextInt();
while (x <= list.length && (number != 0 || x == 0)) {
list[x] = number;
x++;
System.out.print("Add number " + (x + 1) + ": ");
number = input.nextInt();
}
for (int i = 0; i < x; i++) {
sum += list[i];
avr = sum / x;
}
System.out.println("The sum of all values are: " + sum);
System.out.println("The average value of the numbers are: " + avr);
}
}
我想我已经解决了!似乎运行正常,我没有收到任何错误消息。我仍然想知道这是否违反条件#1。如果没有,有办法解决吗?
【问题讨论】:
-
The analysis (the math, so to speak), must be done after the user-input is done.哇,最优雅的解决方案是一路计算 -
@Cruncher。是的,我们在课堂上有过。如何在while循环中计算。但这有点棘手。
-
你真的很亲密!这里最大的问题是您丢失了输入的元素数量,这对于计算平均值非常重要(并避免循环任何空元素)。
-
我想我现在已经解决了!
-
您应该接受答案,或者将您自己的答案与解决方案一起发布并接受。
标签: java arrays while-loop sum average