回 帖 发 新 帖 刷新版面

主题:编写一个计算比赛中每一位选手最终得分的程序。哪位会,请帮忙?

要求:1、10名评委,在0-10之间整数范围内打分。
      2、10得分中去掉最高和最低分(如有两个最高或两个最低都是去掉一个),剩下的8个得分取平均分为选手得分。
      3、求出全部选手的总得分,及总平均分。
      4、采用提示输出。

回复列表 (共1个回复)

沙发

大概只给你说一下思路吧

求最大值和最小值

例子:

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中

大概就这样,你自己试着写一写

我来回复

您尚未登录,请登录后再回复。点此登录或注册