[英]How can I find the highest, lowest, and average value of all test scores within my loop?
[英]Find highest,lowest and average in a loop
我知道我做错了可能很小。 我希望它在循环结束时打印出最低的数字等,但它总是将零打印为最低。 我如何不将退出机制零设为最低数字。
有什么建议吗?
class HighLowAve
{
public static void main (String[]args)
{
int num =0;
int sum;
int highest;
int lowest;
int index;
Double average;
highest = num;
lowest = num;
sum = 0;
index = 0;
do
{
System.out.println("Enter a number. Press zero to quit ");
num = EasyIn.getInt();
if (num > highest)
{
highest = num;
}
else if (num < lowest)
{
lowest = num;
}
sum = sum + num;
index++;
}while (num !=0);
average = (double) sum/(index-1);
System.out.println("The highest number was " + highest);
System.out.println("The lowest number was " + lowest);
System.out.println("The average number was " + average);
}
}
您的highest
和lowest
变量都从0开始。因此,如果您的数字全为负,您将错误地获得highest
0。 如果您的数字均为正数,则错误地得到lowest
的0。
刚开始时highest = Integer.MIN_VALUE
, lowest = Integer.MAX_VALUE
,然后第一次迭代将以正确的highest
和lowest
值结束。
在更改高值和低值之前,请先检查数字是否为零。
do
{
System.out.println("Enter a number. Press zero to quit ");
num = EasyIn.getInt();
if (num == 0) break;
if (num > highest)
{
highest = num;
}
else if (num < lowest)
{
lowest = num;
}
sum = sum + num;
index++;
}while (num !=0);
同样,在循环中对它们进行任何比较之前,还需要初始化highest
和lowest
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.