问题描述
我能够编写一个LMC程序,该程序找到两个输入值中的较大值。但是,如何修改它以找到任意数量的输入值中的最大值,而不只是两个?
下面是我的代码:
START INP
STA NUM1
INP
STA NUM2
LDA NUM1
SUB NUM2
BRP Positive
LDA NUM2
OUT
HLT
Positive LDA NUM1
HLT
NUM1 DAT
NUM2 DAT
解决方法
让NUM1作为到目前为止的最大 ,并循环执行以将下一个输入读入NUM2。如果比较显示下一个输入更大,则更新NUM1,否则不更新。
使用这种方法,最好将NUM1重命名为MAX,将NUM2重命名为NUM。
您还应该确定将提供所有输入的指示是什么。一种方法是同意用户必须输入一个特定值以标记输入的结尾。显然,这意味着特殊值不能成为输入本身的一部分。
如果终止值为0,则显示如下:
name = input("Name: ")
age = int(input("Age: "))
isMale = input("Male? ").strip().title()
notValid = True
if(isMale == 'True'):
print("His name is "+ name)
print("He is {input} years old.".format(input= age))
print("He is a Male")
notValid = False
elif(isMale == 'False'):
print("Her name is " + name)
print("She is {input} years old.".format(input= age))
print("She is a Female")
notValid = False
while notValid:
if (isMale != 'True') or (isMale != 'False'):
print("Wrong Input. Please type True/False")
isMale = input("Male? ").strip().title()
else:
notValid = False