�"og:type" content="webpage">�" /> �"> 编程序: 目标串:t ="ababcabcacbabcacbbaaccabccaa", 模式串:p ="abcac"_CMS教程_内存溢出

阅读15

编程序: 目标串:t ="ababcabcacbabcacbbaaccabccaa", 模式串:p ="abcac",第1张

代码给你了,有不懂的可以追问

#include<stdioh>

void fun(chart,charp)

{

int i,j=0;

static int n=0;

for(i=0;i<5;i++)

{

if(t=='\0')

break;

if(t[i]==p[j])

j++;

else

{

t++;

n++;

j=0;

i=-1;

}

}

if(i>=5)

{

printf("%d\n",n);

t=t+5;n=n+6;j=0;

fun(t,p);

}

}

void main()

{

char t="ababcabcacbabcacbbaaccabccaa";

char p="abcac";

fun(t,p);

}

;完整程序

;编译,链接通过

;运行正确

DATA SEGMENT

STR DB 'a bb ccc !'

RE DB 3 DUP(0)

DATA ENDS

STACK SEGMENT STACK

SKTOP DB 40H DUP()

SKSIZE EQU $-OFFSET SKTOP

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

BEGIN: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV SP,SKSIZE

LEA SI,STR

LEA DI,RE

CALL STAT

MOV AH,2

MOV CX,3

XOR BX,BX

DSP: MOV DL,[BX+DI]

ADD DL,'0'

INT 21H

ADD BL,'a'

MOV DL,BL

INT 21H

MOV DL,' '

INT 21H

SUB BL,'a'-1

LOOP DSP

MOV AX,4C00H

INT 21H

;参数: SI=欲统计的字串的有效地址

; DI=保存统计结果的有效地址

;返回: NONE

STAT PROC

PUSH AX

PUSH BX

PUSH CX

PUSH SI

MOV AL,0

MOV CX,'c'-'a'+1

XOR BX,BX

FILL0: MOV [BX+DI],AL

INC BX

LOOP FILL0

XOR BX,BX

XOR AH,AH

STATS: MOV AL,[SI]

CMP AL,'!'

JE STATRE

SUB AL,'c'

JA CONTN

ADD AL,'c'-'a'

JS CONTN

MOV BX,AX

INC BYTE PTR [BX+DI]

CONTN: INC SI

JMP STATS

STATRE: POP SI

POP CX

POP BX

POP AX

RET

STAT ENDP

CODE ENDS

END BEGIN

第1次循环,i=0,a[i]='a',所以执行i1++,此时i1=1;

第2次循环,i=1,a[i]='b',所以执行i2++,此时i2=1;第3次循环,i=2,a[i]='c',不执行i1++或者

i2++;

第4次循环,i=3,a[i]='d',不执行i1++或者i2++;

第5次循环,i=4,a[i]='A',不执行i1++或者i2++;

第6次循环,i=5,a[i]='b',所以执行i2++,此时i2=2;

第7次循环,i=6,a[i]='c',不执行i1++或者i2++;

第8次循环,i=7,a[i]='A',不执行i1++或者i2++;

第9次循环,i=8,a[i]='B',不执行i1++或者i2++;

第10次循环,i=9,a[i]='f',不执行i1++或者i2++;

第11次循环,i=10,a[i]='g',不执行i1++或者i2++;

第12次循环,i=11,a[i]='a',所以执行i1++,此时i1=2;

第13次循环,i=12,a[i]='c',不执行i1++或者i2++;

第14次循环,i=13,a[i]='d',不执行i1++或者i2++;

之后i=14,a[i]='\0',结束循环。i1=2,i2=2。

版本 2

程序集 窗口程序集1

子程序 __启动窗口_创建完毕

局部变量 A, 整数型

局部变量 B, 整数型

局部变量 C, 整数型

局部变量 D, 整数型局部变量 数组

, 文本型, , "4"

数组 = { “A”, “B”, “C”, “D” }

编辑框1是否允许多行 = 真

编辑框1内容 = “”

计次循环首 (4, A)

计次循环首 (4, B)

如果真 (B = A)

到循环尾 ()

如果真结束

计次循环首 (4, C)

如果真 (C = B 或 C = A)

到循环尾 ()

如果真结束

计次循环首 (4, D)

如果真 (取反 (D = C 或 D = B 或 D = A))

编辑框1内容 = 编辑框1内容 + 数组 [A] + 数组 [B] + 数组 [C] + 数组 [D] + “ ”

如果真结束

计次循环尾 ()

计次循环尾 ()

计次循环尾 ()

计次循环尾 ()

----------------------------------------

运行结果:

ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA CDAB CDBA DABC DACB DBAC DBCA DCAB DCBA

#include <stdioh>

#include<windowsh>

void main()

{

 int i,j,k;

 for (i=0;i<4;i++)

 {

  for(j=0;j<i+1;j++)

   printf(" ");

  for(k=1;k<=7-2i;k++)

   printf("%d",k);   //这一行改成  printf("%c",k-1+'A');

  Sleep(1000);

  printf("\n");

 }

}

1、先打开DEV C++软件,并点击“新建源代码”。

2、在编辑页面输入源代码:

#include<stdioh>

int main()

{

void exchange(int q1,int q2,int q3);

int a,b,c,p1,p2,p3;

printf("please input three numbers:");

scanf("%d %d %d",&a,&b,&c);

p1=&a;

p2=&b;

p3=&c;

exchange(p1,p2,p3);

printf("The order is:%d %d %d\n",a,b,c);

return 0;

}

void exchange(int q1,int q2,int q3)

{

void swap(int pt1,int pt2);3、因为此次的编程要求自定义函数

swap() 用于交换两个变量的值,并且函数的原型为: void swap(int p1,int p2),并在main函数中用指针变量作实参,调用swap函数,最后输出排序后的结果,所以要先进行函数的定义,给其进行分配空间。

4、首先需要对这三个数分别进行比较,然后再在这个函数中镶嵌另一个函数来进行第二次的大小比较。

5、在使用指针函数时,要注意其指向,必须明确指向目标,指向要规范,否则计算机无法识别,编程将会运行不出来。

6、最后点击“运行”,然后向计算机输入我们的三个不同数值,计算机就会按其从大到小进行顺序的输出了。

以上就是关于编程序: 目标串:t ="ababcabcacbabcacbbaaccabccaa", 模式串:p ="abcac"全部的内容,包括:编程序: 目标串:t ="ababcabcacbabcacbbaaccabccaa", 模式串:p ="abcac"、求解一道汇编语言程序题,急!!!、C语言 为什么这个程序输出是这个结果(数组问题)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:

内存溢出

原文地址:

https://54852.com/zz/9636655.html
程序
(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
UG主要是做什么的 我看里面CAD比较多啊
上一篇
2023-04-30
怎样安装pdf虚拟打印机百度经验
2023-04-30

发表评论
请登录后评论...
登录
提交

    评论列表(0条)
保存
{label}{label}