簡體   English   中英

如何找到兩個以上輸入數字中的最大值

[英]How to find the greatest of more than two input numbers

我能夠編寫一個 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,它的外觀如下所示:

 #input: 5 2 8 4 5 0 START INP BRZ OUTPUT STA MAX LOOP INP BRZ OUTPUT STA NUM LDA MAX SUB NUM BRP LOOP ; input was not greater LDA NUM STA MAX ; input was greater BRA LOOP OUTPUT LDA MAX OUT HLT NUM DAT MAX DAT 0 <script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.7/lmc.js"></script>

暫無
暫無

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

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