CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

求助:在首地址为TABLE的数组中存放着200个16位有符号数,以补码表示,找出最大数,最小数,出现次数最多的数以及该数出现的次数,依次存

楼主efaneda()2006-03-29 12:02:50 在 其他开发语言 / 汇编语言 提问

在首地址为TABLE的数组中存放着200个16位有符号数,以补码表示,找出最大数,最小数,出现次数最多的数以及该数出现的次数,依次存放于以RESULT开始的单元内。  
   
  请帮忙写一下程序,急~,谢谢~! 问题点数:50、回复次数:5Top

1 楼efaneda()回复于 2006-03-29 18:48:31 得分 0

十万火急  
   
  up~!Top

2 楼icbm(雪狼)回复于 2006-03-30 17:50:14 得分 50

/*   Turbo   C   2.0   编译调试通过   */  
  #include   <stdio.h>  
   
  int   table[200]={-1,2,3,4,4,4,4,4,6,8};   /*   数组初始化,略   */  
   
  int   result[4];  
   
  int   main()  
  {  
  int   max,   min,   num,   time;  
   
  int   i,j,t,f;  
   
  /*--------------------------------------------*/  
  /*   查找最大的数及最小的数   */  
  max=min=table[0];  
   
  for   (i=1;   i<200;   i++)  
  {  
  if   (table[i]>max)  
  {  
  max=table[i];  
  }  
  else   if   (table[i]<min)  
  {  
  min=table[i];  
  }  
  }  
  /*--------------------------------------------*/  
  /*   查找出现次数最多的数,及出现的次数   */  
  time=0;  
   
  for   (i=0;   i<200;   i++)  
  {  
  f=0;  
  for   (t=0;   t<i;   t++)  
  {  
  if   (table[t]   ==   table[i])   /*   此数已经检查过   */  
  {  
  f++;  
  break;  
  }  
  }  
  if   (f==0)  
  {  
  t=0;  
  for   (j=i;   j<200;   j++)  
  {  
  if   (table[i]   ==   table[j])  
  {  
  t++;  
  }  
  }  
  if   (t>time)  
  {  
  time=t;  
  num=table[i];  
  }  
  }  
  }  
  /*--------------------------------------------*/  
  /*   保存结果   */  
  result[0]=max;  
  result[1]=min;  
  result[2]=num;  
  result[3]=time;  
   
  /*   输出结果   */  
  /*  
  printf("%d,   %d,   %d,   %d\n",   result[0],   result[1],   result[2],   result[3]);  
  */  
  /*--------------------------------------------*/  
  return   0;  
  }  
  Top

3 楼icbm(雪狼)回复于 2006-03-30 18:29:10 得分 0

;--------------------------  
  ;Microsoft   (R)   Macro   Assembler   Version   6.11   编译、调试通过  
  ;--------------------------  
   
   
  data         segment  
  Table dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9  
  dw   5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,-1,-1  
  Result dw   0,0,0,0  
  data         ends  
   
  code         segment  
                  assume     cs:code,ds:data  
  start:  
                  mov           ax,   data  
                  mov           ds,   ax  
  ;-------------------------------  
                  mov           si,   offset   Table  
  mov ax,   [si]   ;   ax存放最大数  
  mov bx,   [si]   ;   bx存放最小数  
  mov cx,   199     ;   循环199次  
  @C001:  
  inc si  
  inc si  
  mov dx,   [si]  
  cmp dx,   ax  
  jg @C002  
  cmp dx,   bx  
  jl @C003  
  jmp @C004  
  @C002:  
  mov ax,   dx  
  jmp @C004  
  @C003:  
  mov bx,   dx  
  @C004:  
  loop @C001  
   
  ;   保存结果  
  mov Result,   ax  
  mov Result+2,   bx  
  ;-------------------------------  
   
  mov si,   offset   Table  
  mov cx,   200  
  @C005:  
  mov ax,   [si]  
  xor dx,   dx  
  ;-------------------------------  
  push cx  
   
  mov di,   offset   Table  
  mov cx,   200  
  @C006:  
  mov bx,   [di]  
  cmp ax,   bx  
  jnz @C007  
  inc dx  
  @C007:  
  inc di  
  inc di  
  loop @C006  
   
  pop cx  
  ;-------------------------------  
  cmp dx,   Result+6  
  jle @C008  
  mov Result+4,   ax  
  mov Result+6,   dx  
  @C008:  
  inc si  
  inc si  
  loop @C005  
  ;-------------------------------  
                  mov           ax,4c00h  
                  int           21h  
  code                         ends  
                  end           start  
   
  ;   最后结果   Result   9,   -1,   5,   36Top

4 楼wangshuaiws(宇智波.鼬)回复于 2006-04-04 18:38:31 得分 0

我并不是楼主,但我谢谢雪狼,可以的话,留下qq号,谢谢!Top

5 楼icbm(雪狼)回复于 2006-04-05 16:44:48 得分 0

CSDN的显示真糟糕!所有的TAB键都被忽略掉了,这对显示程序可真是个大问题。每次忘了把TAB字符换成空格的时候,格式就全乱了!  
   
  QQ:7019717  
  不过上得不多。如要加好友,请说明交流编程技术,免得被无聊人打挠。  
  Top

相关问题

  • 怎么找出5*5数组中最大数的位置
  • 判断最大数
  • 不知道该数组的长度怎么定义啊
  • 请问如何判断是否存在该数组元素?
  • 请指教:TC下如何得到该数组的长度?
  • 定义一动态数组,如果仅知道其指针,请问能得到该数组的长度吗?
  • 将一个数组赋给一个Vector,请问如何取出该数组的元素?
  • 如何获取通过函数调用返回的数组的长度(即该数组含多少个元素)
  • 如何解决“该数组为定长的或临时被锁定”
  • 设计一个函数,使给出一个任意数的原码,能得到该数的补码.

关键词

  • 数组
  • 次数
  • 存放
  • dw
  • 出现
  • max
  • result
  • min
  • table
  • num

得分解答快速导航

  • 帖主:efaneda
  • icbm

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo