7 個評委分別給分在 10~20分 之間的整數,7 個評分中去掉1個最高分,去掉一個最低分,將剩下 5 個分的平均值作爲最後得分。
程序要求:
1) 評委給分以兩位十制數從鍵盤輸入。
2) 最後得分以十進制數形式在屏幕上顯示。
3) 最後得分取小數 1~2 位。
題目鏈接:http://zhidao.baidu.com/question/1819307939774660988.html
做而論道編程如下: (2015-01-07 23:25 提問者採納)
ASSUME CS:CODE, DS:DATA
DATA SEGMENT
STRING DB 13, 10, 'Please iuput number_1 : $'
NUM DB 7 DUP (?)
MAX DB 0
MIN DB 255
N_SUM DW ?
NUM_X DB ?
DATA ENDS
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
MOV CX, 7
MOV SI, 0
IN_X:
MOV DX, OFFSET STRING
MOV AH, 9 ;顯示字符串
INT 21H
CALL INPUT
MOV NUM[SI], BL
CALL OUTPUT
INC SI
INC STRING + 24
LOOP IN_X
;--------------------------
CALL SUM
MOV N_SUM, BX
MOV AL, MAX
MOV AH, 0
SUB BX, AX
MOV AL, MIN
MOV AH, 0
SUB BX, AX
MOV AX, 5
XCHG AX, BX
DIV BL
MOV NUM_X, AH
MOV AH, 0
XCHG AX, BX
CALL OUTPUT
CALL OUTPUT2
MOV AH, 4CH
INT 21H
;----------------------------------
MOV BX, N_SUM
CALL OUTPUT
MOV BL, MAX
MOV BH, 0
CALL OUTPUT
MOV BL, MIN
MOV BH, 0
CALL OUTPUT
SUM:
MOV BX, 0
MOV CX, 7
MOV SI, 0
LP1:
MOV AL, NUM[SI]
CMP AL, MAX
JB LP2
MOV MAX, AL
LP2:
CMP AL, MIN
JA HE
MOV MIN, AL
HE:
MOV AH, 0
ADD BX, AX
INC SI
LOOP LP1
RET
;----------------------------------
INPUT:
MOV BX, 0
IN_1:
MOV AH, 1
INT 21H
CMP AL, 13
JZ IN_END
CMP AL, '0'
JB IN_1
CMP AL, '9'
JA IN_1
AND AL, 0FH
MOV AH, 0
XCHG AX, BX
MOV DL, 10
MUL DL
ADD AX, BX
XCHG AX, BX
JMP IN_1
IN_END:
RET
;----------------------------------
OUTPUT2:
MOV AH, 02H
MOV DL, '.' ;小數點
INT 21H
MOV AL, NUM_X
MOV BL, 10
MUL BL
MOV BL, 5
DIV BL
MOV NUM_X, AH
ADD AL, '0'
MOV DL, AL
MOV AH, 2
INT 21H
MOV AL, NUM_X
MOV BL, 10
MUL BL
MOV BL, 5
DIV BL
MOV NUM_X, AH
ADD AL, '0'
MOV DL, AL
MOV AH, 2
INT 21H
RET
;----------------------------------
OUTPUT:
CALL CRLF
MOV AX, BX
MOV BL, 10
DIV BL
ADD AX, 3030H
MOV DX, AX
MOV AH, 2
INT 21H
MOV DL, DH
INT 21H
RET
;----------------------------------
CRLF PROC NEAR ;回車換行子程序
PUSH AX
PUSH DX
MOV AH, 02H ;回車
MOV DL, 0DH
INT 21H
MOV DL, 0AH ;換行
INT 21H
POP DX
POP AX
RET
CRLF ENDP
CODE ENDS
END START