簡體   English   中英

偽代碼輸入年齡,計算Java的最大值和平均值

[英]pseudocode input age, calculate max and average for java

編寫一個偽代碼算法,該算法將輸入一系列人的年齡(為1到120之間的整數),並計算最大和平均年齡。 平均年齡應以實數計算。 您的算法應繼續輸入年齡值,直到用戶輸入零值為止。 這是算法停止輸入年齡,然后輸出平均年齡和最大年齡的信號。 如果用戶輸入的年齡無效,則您的算法應繼續提示用戶,直到他們輸入有效年齡為止。 您的算法應充分利用子模塊。 注意確定平均或最大年齡時不應包括零。

這是我的練習題

我想出了

main 

FOR 
age = inputAge <-prompt "enter age"
max = getMax <- age
sum = sum + age
average = getAverage <- sum, number of times input
END FOR
OUTPUT max, average

END MAIN

METHOD inputAge
IMPORT prompt
EXPORT age
    INPUT age
    WHILE age >= 120 AND age <= 0 DO
        OUTPUT "enter valid age"
        INPUT age

    END WHILE 
END 

METHOD getMax
IMPORT age
EXPORT max
    IF max < 0 THEN
    max = age
END

METHOD getAverage
IMPORT sum, number of times input
EXPORT average
    average = sum / number of times input
END

我的問題是,我不太確定如何輸入1到120,並在輸入0時停止循環並獲得輸入次數,因此我可以計算平均值。 主要的for循環也是一個問題。 我明白了這個問題要問的問題,但只是頭腦不明白而已。 我可以在這個問題上得到幫助嗎?

好吧,對於初學者而言,在收集所有輸入並將最大值保存為最大值之后,計算平均值將容易得多。 因此,將總和和最大值設置為0並創建一個變量以計算輸入數量將是一個不錯的開始。 我會做這樣的事情:

main 

max = 0
sum = 0
count = 0

WHILE true 
age = inputAge <-prompt "enter age"
IF age == 0 THEN
    BREAK
END IF
IF age > max THEN
    max = age
END IF
sum = sum + age
count = count + 1
END WHILE
average = getAverage <- sum, count
IF count == 0 THEN
    OUTPUT "There was no input"
ELSE
    OUTPUT max, average
END IF

END MAIN

METHOD inputAge
IMPORT prompt
EXPORT age
    INPUT age
    WHILE age >= 120 AND age <= 0 DO
        OUTPUT "enter valid age"
        INPUT age

    END WHILE 
END

METHOD getAverage
IMPORT sum, number of times input
EXPORT average
    average = sum / number of times input
END

暫無
暫無

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

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