主题:编写一个计算比赛中每一位选手最终得分的程序。哪位会,请帮忙?
zhoul317
[专家分:0] 发布于 2006-10-15 18:15:00
要求:1、10名评委,在0-10之间整数范围内打分。
2、10得分中去掉最高和最低分(如有两个最高或两个最低都是去掉一个),剩下的8个得分取平均分为选手得分。
3、求出全部选手的总得分,及总平均分。
4、采用提示输出。
回复列表 (共1个回复)
沙发
救世猪猪 [专家分:560] 发布于 2006-10-15 22:38:00
大概只给你说一下思路吧
求最大值和最小值
例子:
dataseg segment
array1 dw 58,2,98,7,100,12,33,54,68,75
max dw ?
dataseg ends
stack segment stack
dw 200 dup (?)
stack ends
codeseg segment
main proc far
assume cs:codeseg,ds:dataseg,ss:stack
start:
push ds
mov ax,dataseg
mov ds,ax
sub ax,ax
mov bx,ax
mov ax,array1[bx]
mov cx,9
loop1: add bx,2
cmp ax,array1[bx]
jg next
mov ax,array1[bx]
next: loop loop1
mov max,ax
mov dx,ax
mov ah,02
int 21h
mov ah,4ch
int 21h
main endp
codeseg ends
end start
这个例子是我刚在论坛里面看到的,粘上来了,是求最大值的
最小值类似,把这两个数去除掉
然后再把剩余的8个加起来,放到一个内存单元中
然后把它放到AX中,div 8这条指令就可以对AX中的数据进行除8
得到的数存在AL中
大概就这样,你自己试着写一写
我来回复