第1个回答 2017-11-24
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START: JMP BEGIN
DATA DB 10,9,8,7,6,5,4,3,2,1
NUM EQU $-DATA
BEGIN:
PUSH CS
POP DS
PUSH CS
POP ES
LEA SI,DATA
MOV CX,NUM
CALL SORTBYTE
MOV AH,4CH
INT 21H
;===============================================
; 字节数组排序(有符号数
冒泡排序)
SORTBYTE PROC NEAR
; 数组长度置入cx,字数组首地址置入 si
PUSH AX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSHF
PUSH CX
POP DX
DEC DX
@SORTBL1:
MOV CX,DX
MOV DI,SI
@SORTBL2:
MOV AL,[DI+1]
CMP AL,[DI]
JG @SORTBNEXT ; 从小到大(无符号换成 JB)
XCHG AL,[DI]
MOV [DI+1],AL
@SORTBNEXT:
INC DI
LOOP @SORTBL2
DEC DX
JNZ @SORTBL1
POPF
POP DI
POP SI
POP DX
POP CX
POP AX
RET
SORTBYTE ENDP
;===============================================
CODE ENDS
END START
本回答被提问者和网友采纳
第2个回答 2019-12-23
#include"stdio.h"
void fun(int a[])
int i,j,t;
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
void main()
FILE *wf;
int a[10];
int b[10]={9,10,11,12,1,2,3,4,0,1};
int c[10]={1,2,3,4,13,14,15,16,2,3};
int i;
printf("请输入待排序的10个数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a);