您好我的代码应该在下面执行此说明但是根本没有得到它
用户可以根据需要在控制台上输入任意数量的正浮点数。零(或一个 信号输入结束(不能输入更多数字)。输入程序后 显示器 输入的最小数字(分钟) 输入的最大数字(最大) 输入的所有数字的平均值(平均值) 即使您了解这些分配,也不要使用数组。
示例应如下所示
输入数字:\ n 1 2 3 4 5 6 0 \ n 输入的数字:6 \ n 最低:1.00 \ n 最大值:6.00 \ n 意思是:3.50 \ n
输入数字:\ n 0 \ n 没有输入数字。
public class LoopStatistics {
public static void main(String[] args) {
double max, min, sum=0, input, mean=0;
int counter = 0;
TextIO.putln("enter numbers:");
do
{
input = TextIO.getDouble();
min = input;
max = input;
counter++;
if (input > max)
max = input;
if ( input < min)
min = input;
sum = sum + input;
} while( input != 0);
mean = sum / counter;
TextIO.putf("numbers entered:%d\n", counter);
TextIO.putf("minimum:%f\n", min);
TextIO.putf("maximum:%f\n", max);
TextIO.putf("mean:%f", mean);
}
}
答案 0 :(得分:1)
您在测试max
和min
是否大于/小于当前max
/ min
之前指定了min = input;
max = input;
:
public static void main(String[] args) throws Exception {
final Scanner scanner = new Scanner(System.in);
double max = 0;
double min = Double.POSITIVE_INFINITY;
double sum = 0;
int counter = 0;
while (true) {
final double d = scanner.nextDouble();
if (d <= 0) {
break;
}
sum += d;
max = Math.max(max, d);
min = Math.min(min, d);
++counter;
}
System.out.println("Max=" + max);
System.out.println("Min=" + min);
System.out.println("Ave=" + sum / counter);
}
这意味着他们都等于最后输入的人。
整理代码并删除这些调用会产生:
{{1}}