如何找到两个以上输入数字中的最大数字

问题描述

我能够编写一个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