簡體   English   中英

循環查找最高,最低和平均值

[英]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);            
    }
}

您的highestlowest變量都從0開始。因此,如果您的數字全為負,您將錯誤地獲得highest 0。 如果您的數字均為正數,則錯誤地得到lowest的0。

剛開始時highest = Integer.MIN_VALUElowest = Integer.MAX_VALUE ,然后第一次迭代將以正確的highestlowest值結束。

在更改高值和低值之前,請先檢查數字是否為零。

    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);

同樣,在循環中對它們進行任何比較之前,還需要初始化highestlowest

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM