程序将要求用户一一输入数字。假定所有数字都在1到1000的范围内。要终止数据输入,用户将输入任何负数。数据输入完成后,程序将显示有关数字列表的四个统计信息:(i)计数,(ii)最小值和(iii)数字总和。
例如,如果用户输入以下十进制数字作为输入(一个接一个)
23,6,78,36,3,250,127,210,–5
程序将分别输出以下值作为计数,最小值和总和:
8 3 733
假定用户将始终提供有效的数字作为输入,即不必担心处理无效的输入数据。
我尝试了这段代码,但是输出错误:
LOOP, LOAD T
SUBT TEN
SKIPCOND 000 /if T = 10
JUMP LOO /take average after T = 10;
CLEAR /BEGIN INPUTING NUMBERS FOR AVERAGE
INPUT
STORE TEMP
CLEAR
IF, LOAD T
SUBT 1
SKIPCOND 800
JUMP STOREFIRST
CLEAR
LOAD TEMP
SUBT MIN
SKIPCOND 000
JUMP FINDMAT
ELSE, SKIPCOND 800
JUMP FINDMIN
CONTINUE, CLEAR
LOAD TEMP
ADD P /add P to the input
STORE P /save new value
CLEAR
LOAD T /INCREMENT COUNTER
ADD ONE
STORE T
CLEAR
JUMP LOOP /RESTART LOOP
FINDMAT, CLEAR
LOAD TEMP
STORE MAT
JUMP CONTINUE
FINDMIN, CLEAR
LOAD TEMP
STORE MIN
JUMP CONTINUE
STOREFIRST, LOAD TEMP
STORE MIN
STORE MAT
JUMP CONTINUE
LOO, LOAD P /LOAD ALL THE ADDED NUMBERS
SKIPCOND 800 /WHEN P = 0
JUMP PRINT /GO TO OUTPUT
SUBT TEN /SUBTRACT 10 UNTIL REACH 0
STORE P /STORE NEW NUMBER
CLEAR
LOAD AVERAGE /EACH LOOP ADD 1 TO AVERAGE
ADD ONE
STORE AVERAGE
CLEAR
JUMP LOO
PRINT, LOAD AVERAGE
OUTPUT
CLEAR
LOAD MIN
OUTPUT
CLEAR
LOAD MAT
OUTPUT
CLEAR
HALT
TEN, DEC 10
ONE, DEC 1
T, DEC 0 /USE TO INPUT 10 NUMBERS, COUNTER
P, DEC 0 /ALL NUMBERS INPUT ADDED
MIN, DEC 0
MAT, DEC 0
TEMP, DEC 0
AVERAGE, DEC 0 /AVERAGE OF P DIVIDED BP T
当我在MARIE模拟器上编译该程序时,则没有得到所需的输出。通过此代码,用户可以输入10个输入。这段代码取的是负值,但我只希望东西为正值。 请帮助我解决此错误。