在我的批判性思维课中处理一个特定的问题我遇到了很多麻烦。 任务是:
任务
开发一种算法来提示并获得一年的最高日常温度。但是,为了考虑闰年,您的算法应首先提示用户查看此特定年份的天数。也就是说,您的算法应该预期365或366作为输入温度值的第一个输入数字。
此外,对于这一年,您的算法还必须确定并显示这些温度值的平均值,最大值和最小值。
以下是需要发生的事情的示例: 提示一年中的天数 (让我们说他们进入365)
然后提示用户MAXIMUM每日温度365天。
获取365(个体)最高温度,找到最小值= Min_temp。
获取365(个人)最高温度,找到最高值= Max_temp。
总结所有365个有效最大温度并将其除以一年中的天数(365)= Avg_temp。
打印Min_temp
打印Max_temp
打印Avg_temp
到目前为止,这就是我所拥有的:
1. Prompt operator to enter Number_Of_Days within year.
2. WHILE Number_Of_Days = 365 or 366 THEN
3. IF Number_Of_Days is = 365 THEN
4. Year = 365
5. ELSEIF Number_Of_Days = 366 THEN
6. Year = 366
7. ENDIF
8. ELSEWHILE Number_of_Days is NOT = 365 or 366 THEN
9. Print ‘ERROR: Please enter a number that is 365 or 366.’
10. Prompt operator to enter Number_Of_Days within year.
11. ENDWHILE
12. DOWHILE MaxDayTemp = 1 to Year
16. Prompt operator for MaxDailyTemp
15. ENDO
从这里开始,我们的目的是获得用户提供的所有最大温度的平均值,这很容易通过AVG_TEMP =一年中的温度/天数总和来完成。
我无法解决的问题是如何获取每天的值并找到所提供的最低值和最高值。 我一直试图用数组来解决这个问题,但我对它完全感到困惑。
请帮忙! :(
答案 0 :(得分:0)
我认为你期待这样的事情,尝试使用你的转换。根据需要格式化。
i=0;
tempsum=0;
tempmax=0;
tempmin=100;
currenttemp=0;
no_days=0;
// variables used to store values
do
(prompt user for number of days)
no_days = user input
while no_days!=365 or no_days!=366 // will loop until user enter 365 or 366
while i<no_days
do
(Prompt operator for MaxDailyTemp)
currenttemp = userinput
while (currenttemp value is invalid) // thinking in the same way as above
if currenttemp > tempmax
tempmax = currenttemp
else if currenttemp < tempmin
tempmin = currenttemp
tempsum = tempsum + currenttemp
i = i+1
end
display average temp. = tempsum/no_days
display max temp. = tempmax
display min temp. = tempmin
答案 1 :(得分:0)
我不知道您的课程需要什么语法,但是
max = (1 st value)
min = (1 st value)
i = 2
WHILE i < year THEN
IF (i th value) > max THEN
max = (i th value)
ELSIF (i th value) < min THEN
min = (i th value)
i = i + 1
将获得最小值和最大值。