如何解决求和输入数字的程序不起作用
我正在尝试制作一个程序,该程序首先从用户那里获取 n 个输入,然后计算这些数字的总和。然后我希望程序打印总和是偶数还是奇数。
例如,如果用户键入3,则他/她将不得不键入3个数字(例如3、2、5):然后程序将计算这些数字的总和(3 + 2 + 5)并打印答案(10)是奇数还是偶数。
我以为我编码正确,但是它不能在LMC模拟器中运行,有人可以帮我找到错误吗?
我的代码:
{{1}}
解决方法
代码中的主要问题是标签不匹配。
一方面,您定义了以下标签:
- ab
- bc
- cd
...但是您已经引用了以下标签:
- 循环
- 号码
- 偶数
因此,您的代码无效...无法解析。
第二组标签更有意义,而“ ab”,“ bc”,“ cd”则毫无意义:它们不会帮助代码查看者了解它们的含义。因此,将您的代码与第二组代码对齐。
也没有定义LMC是否区分大小写,因此不确定是否支持使用变量名a
和另一个A
。而是提供有意义的名称。实际上,第一个a
是您输入并需要加和的数字,因此可以将其命名为summand
而不是a
。另一个A
可以称为a
,因为它实际上代表字母“ a”。 b
也没有意义。它代表了预期的输入数量,因此可以将其称为inputs
。
综合起来,您的代码将如下所示:
#input: 2 4 5
INP
STA inputs
loop INP
STA summand
LDA total
ADD summand
STA total
STA count
LDA inputs
SUB one
STA inputs
BRZ number
BRP loop
number LDA count
SUB two
STA count
BRZ evennumber
BRP number
LDA total
OUT
LDA space
OTC
OTC
LDA o
OTC
LDA d
OTC
OTC
LDA e
OTC
HLT
evennumber LDA total
OUT
LDA space
OTC
OTC
LDA p
OTC
LDA a
OTC
LDA r
OTC
HLT
summand DAT 0
inputs DAT 0
total DAT 0
one DAT 1
two DAT 2
count DAT 0
o DAT 111
space DAT 32
d DAT 100
e DAT 101
p DAT 112
a DAT 97
r DAT 114
<script src="https://cdn.jsdelivr.net/gh/trincot/lmc@v0.72/lmc.js"></script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。