这是一个家庭作业,我被困在这里。任何帮助表示赞赏。
我尝试将奇数打印到用户输入值(例如6或7)。 我有以下代码,哪种做我想要的但不完全。
这是我的代码:
org 100
input /ask for input
store num /store the input as num
load one
store oddnum /store 1 as odd number
output /print odd number, prints 1
oddloop, load oddnum /start of loop
add two /adds 2 in previous odd number value
store oddnum /stores the new odd number
output /prints odd number
load num /loads user input
subt oddnum /input value minus current odd number value
skipcond 000 /skips next line if value is negative
jump oddloop /jumps to loop
halt /end program
zero, dec 0
one, dec 1
two, dec 2
num, dec 0
oddnum, dec 0
如果用户输入为7;它打印
1 3 5 7 9
这里,预期输出为1 3 5 7
如果用户输入为6;它打印
1 3 5 7
这里,预期输出为1 3 5
答案 0 :(得分:0)
更改代码的逻辑,有很多可能的方法,但我个人会这样做:
num = input
oddnum = 1
while (oddnum <= num) {
output oddnum
oddnum += 2
}
(oddnum <= num)
等于(not(oddnum > num))
换句话说,如果(oddnum-num) > 0
为真,那么在循环(退出)之后跳转到第一条指令,否则循环循环直到循环到looblivion ......
为什么我会使用这个一个逻辑而不是其他逻辑:
while(){}
,而不是do {} while()
,因此它也适用于“0”输入(不显示任何内容),或“1”(“2”)输入仅显示"1"
(具有两个输出的do {} while()
逻辑每次至少显示"1 3"
。