精华内容
下载资源
问答
  • [汇编语言】已知缓冲区BUF有十个字母,按ASCII值将其从小到大顺序排列 实验内容:已知缓冲区BUF有十个字母,按ASCII值将其从小到大顺序排列 实验名称:循环结构程序设计 主要使用软件: Masm for Windows 程序...

    【汇编语言】已知缓冲区BUF有十个字母,按ASCII值将其从小到大顺序排列

    实验内容:已知缓冲区BUF有十个字母,按ASCII值将其从小到大顺序排列

    • 实验名称:循环结构程序设计

    • 主要使用软件: Masm for Windows

    程序如下

    已知缓冲区BUF有十个字母,设为 ‘HLRCOTESAD’

    DATA SEGMENT
       BUF DB 'HLRCOTESAD'
       N  EQU $-BUF
          DB 13,10,'$'
    DATA ENDS
    CODE SEGMENT
       ASSUME CS:CODE,DS:DATA
    START:
           MOV AX,DATA
           MOV DS,AX 
       
           MOV DX,N   ;字母个数送DX,外循环次数
    AGAIN: MOV CX,DX
           DEC CX     ;内循环次数
           LEA SI,BUF
           LEA DI,BUF+1
       I0:
           MOV AL,[SI]
           MOV BL,[DI]
           CMP AL,BL   ;AL>BL则交换,<=则转NEXT
           JBE NEXT
           XCHG AL,BL
           MOV [SI],AL  ;把较小值送入SI
           MOV [DI],BL  ;把较大值送入DI
     NEXT: INC SI
           INC DI
           LOOP I0   ;CX-1->CX,CX!=0 转I0,CX=0一次内循环结束
          
           DEC DX   ;外循环次数-1
           CMP DX,1   ;只剩一个字母不用比较
           JNZ AGAIN
           JMP EXIT  
     EXIT: MOV AH,4CH
           INT 21H
    CODE ENDS
           END START

    调试结果




    已顺序排序为: ‘ACDEHLORST’

    展开全文
  • //每次将相邻的两个数进行比较,将小的调前面 //n个数要进行n-1趟比较,每一趟比较要进行n-1次 //所以第j趟要进行n-j趟比较 #include <stdio.h> int main (void) { int a[10]; int i,j,t; printf("请输入...
    //起泡法排序基本思路:
    //每次将相邻的两个数进行比较,将小的调到前面
    //n个数要进行n-1趟比较,每一趟比较要进行n-1次
    //所以第j趟要进行n-j趟比较 
    
    
    #include <stdio.h>
    int main (void)
    {
    int a[10];
    int i,j,t;
    printf("请输入数字:\n");
    for(i=0;i<=9;i++)
    {
    	scanf("%d",&a[i]);	
    }
    printf("\n");
    for(j=0;j<=8;j++)//十个数进行九趟比较 
    {
    	for(i=0;i<=8-j;i++)//每一趟要进行n-j次比较  要记住i和j都是从0开始的 
    	{
    		if(a[i]>a[i+1])
    		{
    		
    			t=a[i];
    			a[i]=a[i+1];
    			a[i+1]=t;
    		}
    		
    	}
    }
    	printf("比较完之后的数字:\n");
    	
    for(i=0;i<=9;i++)
    {
    	printf("%d\t",a[i]);
    } 
    printf("\n");
    return 0;
    
    
    }
    

    在这里插入图片描述

    展开全文
  • ;将5个数按从小到大排列 ;排列后存到原数组里 org 100h jmp start v1 db 2h,5h,3h,4h,1h start: ;bx用于获得数组中值的位置 mov bx,0 ;cx用于控制外循环次...
            
            ;5个数按从小到大排列
            ;排列后存到原数组里  
            
            org 100h
            jmp start
    v1      db  2h,5h,3h,4h,1h         
            
    start:  ;bx用于获得数组中值的位置
            mov bx,0 
            ;cx用于控制外循环次数
            mov cx,5
            ;初始化
            mov dl,v1[bx]
            mov dh,v1[bx+1]
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    
    next2:  ;将数组里的数移到cpu中
            mov dl,v1[bx]
            mov dh,v1[bx+1]
             
            ;比较两个数的大小
            cmp dl,dh
            ;前者大于后者就跳转到next1
            ja next1 
            ;前者小于后者
            ;将cpu里的数重新存到内存里
            mov v1[bx],dl
            mov v1[bx+1],dh
            jmp next3
    
    next3:  ;无论前者大还是后者大
            ;都要经历这一步,位置加1,循环次数减一
            inc bx
            ;由于你是比较5个数
            ;所以存在数组越界
            cmp bx,4
            ;如果bx等于4表名一次内循环结束
            je  next4
            jmp next2
                   
    next1:  ;因为是从小到达排序
            ;所以交换前后位置的值
            mov v1[bx],dh
            mov v1[bx+1],dl
            jmp next3   
            
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
            
    next4:  ;类似于C语言的两个for循环
            ;里面的那个for循环结束,外面的再来一次
            ;然后里面在初始化
            mov bx,0
            dec cx
            jnz next2       
    
            ret
    
    
    
    
    
    
    展开全文
  • //***************************************************************************...//* 输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数, //* 使合并后的字符串,仍然是从小到大排列。 //*
    //******************************************************************************************** 
    //*程序作者:冰糖 
    //*完成日期:2019年3月8日
    //*章    节:实验二
    //*题    号:4 
    //*题    目:字符串合并:
    //*         输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,
    //*         使合并后的字符串,仍然是从小到大排列。
    //*         如:输入1223aabcc 和233abbdkm
    //*             输出:1222333aaabbbccdkm
    //*         编程要求:
    //*         较好的用户输入输出提示
    //*         先用普通数组编程方式编写,测试好后改用指针方式逐个访问字符数组元素
    //******************************************************************************************** 
    #include<iostream>
    using namespace std;
    #include<string.h>
    #include<iomanip>
    int main()
    {
    	char a[50],b[50],sum[100];
    	int i,j=0,temp,lenA,lenB;
    	cout<<"请输入一个已经按从小到大顺序排列好的字符串a[]:"<<endl;
    	for(i=0;i<50;i++)
    	{
    		cin.get(a[i]);
    		if(a[i]=='\n')
    			break;
    	}
    	lenA=i;
    	cout<<"请再输入一个已经按从小到大顺序排列好的字符串b[]:"<<endl;
    	for(i=0;i<50;i++)
    	{
    		cin.get(b[i]);
    		if(b[i]=='\n')
    			break;
    	}
    	lenB=i;                                                   //输入字符串 
    	strcpy(sum,a);
    	for(i=lenA;i<(lenA+lenB);i++)
    	{
    		sum[i]=b[j++];
    	}                                           //合并字符串
    	for(i=0;i<(lenA+lenB-1);i++)
    	{
    		for(j=0;j<(lenA+lenB-1)-i;j++)
    		{
    			if(sum[j]>sum[j+1])
    			{
    				temp=sum[j];
    				sum[j]=sum[j+1];
    				sum[j+1]=temp; 
    			}
    		}
    	}                                              //字符串排序 
    	cout<<"*****************************************************************"<<endl;
    	cout<<"合并后的字符串为:"<<endl; 
    	for(i=0;i<(lenA+lenB);i++)
    	{
    		cout<<sum[i];
    	}
    	cout<<"\n******************************************************************"<<endl; 
    }
    
    展开全文
  • 本题在之前发布过,但发现方法略有...这样代码更为简洁,同样可以实现从小到大排列 附上全部代码(运行结果) //.h文件 #ifndef _LINKLIST_H_ #define _LINKLIST_H_ #include #include using namespace std; #define O
  • 生成100个随机整数并放入一个链表中,要求链表中的元素按从小到大顺序排列,然后输出该链表 线性表的链式实现 【开发语言及实现平台或实验环境】 Windows 操作系统,C-Free 5.0或其他C开发环境。 【实验目的】 1、...
  • 自定义一组有首地址为data的10个字的数组,请利用冒泡排序算法来编写程序,以使该数组中的数按照从小到大的次序有序化。(注:10个字可以自己定义。) datas segment buffer dw 7,5,3,2,6,9,10,1,8 datas ends ...
  • 自定义一组有首地址为data的10个字的数组,请利用冒泡排序算法来编写程序,使该数组中的数按照从小到大的次序有序化。(注:10个字可以自己定义。) datas segment data1 dw 7,5,3,2,6,9,10,1,8 datas ends 冒泡...
  • //随机生成100个随机整数并放入一个链表中,要求链表中的元素按从小到大顺序排列,然后输出该链表。 #include<stdio.h> #include<stdlib.h> #include<time.h> struct Node{ int Data; struct...
  • #include<stdio.h> int main(void) { int n, x; int a[101]; int i, j; while (scanf_s("%d%d", &n, &x) && n != 0 && x != 0) { int k = 0; for (i = 1;... i++) {...
  • 问题及代码: /* ...*All rights reserved. ...*问题描述:将数组a中的前size个元素按从小到大顺序排列。试设计这个函数模板。。 *输入描述:无。 *程序输出:两个数组。 */ #include using namespace st
  • }//appendChild,从小到大append } }; 完整例程 <!DOCTYPE html> <title>111 window.onload = function(){ var oUl = document.getElementById('ul1'); var oBtn = document....
  • #include int main() { int a[10]; int i,j,t; printf("intput 10 numbers:\n"); for(i=0;i scanf("%d",&a[i]); printf("\n"); for(j=0;j for(i=0;i if (a[i]>a[i+1]) { t=a[i];a[i]=a[i+1];...
  • =100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序。 Input 输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的...
  • 输入:两个已经排好顺序(升序)的两个字符串 输出:一个合并在一起的有序(升序)的字符串 要求: 设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。 如果采用先进行串连接,然后再进行排序的算法,则...
  • //头插法 倒序排列 实现从小到大排列 L->prior = q; } } void Upgrade_2(LinkList &L) //左链域从大到小 { L->prior = L; //让左链域初始化 LNode *p,*q; for (int i = 1; i (L); i++) //右链域循环 每次找出...
  • 从键盘上输入10个整数的数列,将10个数按从小到大顺序排列,输出原数列和排序后的数列。 输入描述 输入10个整数,用空格分隔。 输出描述 分为二行,第一行为原数列,第二行为排序结果,提示汉字与数列之间用冒号隔开...
  • 代码如下: #include<iostream> #include<string> using namespace std;...0x52A740CA (msvcr120d.dll) (test.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x01060000 时发生访问冲突。
  • *问题描述:将数组a中的前size个元素按从小到大顺序排列 *程序输入:无 *程序输出:排列后的数 */ #include using namespace std; template void Sort(T *p,int n) { int i,j; T t; for(i=1;i;i++) for(j=0;j;j...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,089
精华内容 1,635
关键字:

从小到大顺序排列