![](/img/trans.png)
[英]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.