Algorithm 几个问题的伪码算法
我应该为下面的算法写5个伪代码,我有点卡住了。我所做的事情都在任务下面,我知道最后三件事毫无意义。如有任何帮助或提示,将不胜感激。谢谢 •打印输入的最大数字Algorithm 几个问题的伪码算法,algorithm,pseudocode,Algorithm,Pseudocode,我应该为下面的算法写5个伪代码,我有点卡住了。我所做的事情都在任务下面,我知道最后三件事毫无意义。如有任何帮助或提示,将不胜感激。谢谢 •打印输入的最大数字 Title: Print Largest Number From Input //works with number inputs max=0 number= getNumber() read number if number == NONE print (“NO VALID DATA”) while number !
Title: Print Largest Number From Input
//works with number inputs
max=0
number= getNumber()
read number
if number == NONE
print (“NO VALID DATA”)
while number != NONE
if number > max
max = number
Title: Print Largest Even Integer Number From Input
//works with even integer inputs
max=0
integer number= getNumber()
read_integer number
if number == NONE
print “NO VALID DATA”
if number % 2 == 0
print(“NO VALID DATA”)
while number != NONE && number % 2 != 0
if number > max
max = number
•打印输入的最大偶数整数值
Title: Print Largest Number From Input
//works with number inputs
max=0
number= getNumber()
read number
if number == NONE
print (“NO VALID DATA”)
while number != NONE
if number > max
max = number
Title: Print Largest Even Integer Number From Input
//works with even integer inputs
max=0
integer number= getNumber()
read_integer number
if number == NONE
print “NO VALID DATA”
if number % 2 == 0
print(“NO VALID DATA”)
while number != NONE && number % 2 != 0
if number > max
max = number
•打印所有输入整数的总和
Title: Print Sum of All Input Integers
int Number= getNumber()
read_integer Number
if Number == NONE
print(“NO VALID DATA”)
if Number != NONE
li.append(Number)
while li.length == n
print li[1] + li[2] + li[3] + ……. + li[n]
•打印所有输入数字的算术平均值
Title: Print Arithmetic Mean of All Input Numbers
Number= getNumber()
read Number
if Number == NONE
print(“NO VALID DATA”)
if Number != NONE
li.append(Number)
while li.length == n
print li[1] + li[2] + li[3] + ……. + li[n] / n
Title: Print All Values Greater Than or Equal to the Aritmetic Mean of All Input Numbers
Number= getNumber()
read Number
if Number == NONE
print(“NO VALID DATA”)
if Number != NONE
li.append(Number)
while li.length == n
arithmetic_mean = li[1] + li[2] + li[3] + ……. + li[n] / n
print(“”)
•打印大于或等于所有输入数字算术平均值的所有值
Title: Print Arithmetic Mean of All Input Numbers
Number= getNumber()
read Number
if Number == NONE
print(“NO VALID DATA”)
if Number != NONE
li.append(Number)
while li.length == n
print li[1] + li[2] + li[3] + ……. + li[n] / n
Title: Print All Values Greater Than or Equal to the Aritmetic Mean of All Input Numbers
Number= getNumber()
read Number
if Number == NONE
print(“NO VALID DATA”)
if Number != NONE
li.append(Number)
while li.length == n
arithmetic_mean = li[1] + li[2] + li[3] + ……. + li[n] / n
print(“”)
我猜这是课堂作业,所以我不会提供完整答案,但我会尽力帮助 1.打印输入中的最大数字 看来你的想法基本上是对的。需要记住的一件事是,必须在循环中
getNumber()
。否则,number
的值将永远不会更改,因为您只读取一次输入
注意:如果他们只输入负数,则此算法不起作用。将max设置为负无穷大可以解决这个问题
2.打印输入的最大偶数整数值
这是完全相同的想法。你唯一需要做的改变就是忽略每一个不是偶数的数字。对于使用%
运算符检查均匀性,您有正确的想法
不过,在进行检查时要小心。如果您在while
循环中签入条件,就像您在代码中所做的那样,那么循环将在输入奇数后立即退出(并且您的程序将停止)。如果您不想这样做,请保持循环运行,不要将max
设置为奇数
3.打印所有输入整数的和
看起来你的想法是将他们输入的所有数字保存到一个列表中,然后在最后对列表进行汇总。如果你想这样做,那就行了,但没有必要。就像跟踪正在运行的max
值一样,您可以跟踪正在运行的sum
。每次只需将输入添加到它。如果要查找,通常称为“累加器模式”
4.打印所有输入数字的算术平均值
同样,看起来您正在尝试将所有数字存储在一个列表中。同样,没有必要。计算平均值就像计算总和一样,只是最后需要除以输入的数量。因此,除了跟踪总和外,您还需要为n
添加一个额外的“累加器”,每次只需向其添加1
另外,看起来您可能对而所做的事情有点困惑while
的工作原理与if
类似。它检查条件是否为真,如果为真,则运行其下的代码。唯一的区别是,while
将一次又一次地运行该代码,直到条件为false为止。因此,行而li.length==n
没有任何意义。您尚未声明n
是什么,因此无法进行此比较。我猜你是想做这样的事情:
while number != NONE:
n = li.length
这里,您将n指定为列表的长度,而不是检查列表长度是否等于n
5.打印大于或等于所有输入数字算术平均值的所有值
在这里,我们实际上需要将所有输入保存到一个列表中,因为在看到所有数字之前,我们无法知道其平均值
我会把它分成三部分。首先,只需获取所有输入的数字并将其保存到列表中。然后,计算列表的平均值。最后,逐步浏览列表并打印每个大于平均值的值
for number in list:
if number > mean:
print(number)
对于第1部分,只需对while
循环使用与第一个问题后相同的模式,但将number
附加到列表中,而不是将其添加到总和中
对于第2部分,您需要计算列表的总和。在代码中,您编写了li[1]+li[2]+li[3]+.+li[n]
。在代码中表达这一点的方式可能是使用for
循环。我建议您在中查找您正在使用的语言的
循环,并查看它们是如何工作的。在某些语言中,您可能可以执行以下操作:
sum = 0
for number in list:
sum = sum + number
sum = 0
for index in 0...list.length:
sum = sum + list[index]
或者,它可能看起来像这样:
sum = 0
for number in list:
sum = sum + number
sum = 0
for index in 0...list.length:
sum = sum + list[index]
对于第3部分,现在已经计算了平均值,只需再次循环遍历这些数字,并打印出大于平均值的数字
for number in list:
if number > mean:
print(number)