如果您能为我的 Java 课作业提供一些帮助,我将不胜感激。问题的提示是:
编写一个程序来读取一个非负整数列表并显示最大整数、最小整数和所有整数的平均值。用户通过输入一个不用于查找最大值、最小值和平均值的负标记值来指示输入的结束。平均值应该是 double 类型的值,以便用小数部分计算。
我的代码遇到的问题是,在运行时,循环不会完成,除非输入的第一个值是负数,在这种情况下它会返回:
输入的最大数字是:0 输入的最小数字是:0 输入数字的平均值是:NaN
请帮忙!谢谢。-山姆
代码:
package blah;
import java.util.Scanner;
public class blahblah
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println ("Please enter a list of positive integers.");
System.out.println ("Please enter a negative integer when finished.");
int in = 0;
int max = 0;
int min = 0;
int sum = 0;
int count = 0;
in = keyboard.nextInt();
while (in>=0)
{
if (in > max) {
in = max;
}
if (in < min) {
in = min;
}
sum += in;
count++;
if (in < 0) {
break;
}
}
System.out.println("The maximum number entered was: " + max);
System.out.println("The minimum number entered was: " + min);
System.out.println("The average of the numbers entered was: " + (double)sum/count);
}
}