资源描述:
《1数值转换问题(顺序栈)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1数值转换问题(顺序栈)#include#defineMAXSIZE100typedefintdatatype;typedefstruct{datatypedata[MAXSIZE];inttop;}SeqStack;voidInit_SeqStack(SeqStack*s){s->top=-1;}intNoEmpty_SeqStack(SeqStack*s){if(s->top==-1)return0;elsereturn1;}intPush_SeqStack(SeqStack*s,datatypex){if(s->t
2、op==MAXSIZE-1)return0;else{s->top++;s->data[s->top]=x;return1;}}intPop_SeqStack(SeqStack*s,datatype*x){if(s->top==-1)return0;else*x=s->data[s->top];s->top——;return1;voidmain()SeqStacks;intN,r;datatypex;printfC请输入转换数值N:”);scanf(”%cf,&N);printf("转换进制r:");scanf("%d",&r);lnit
3、_SeqStack(&s);while(N>0){x=N%r;Push_SeqStack(&s,x);N=N/r;}printfC转换后数值为:");while(NoEmpty_SeqStack(&s)){Pop_SeqStack(&s,&x);printf("%d",x);}printfC'Wn");}运行结果:2•报数问题:(循环队列)#include#defineMAXSIZE100typedefstruct{intdata[MAXSIZE];intfront;intrear;}SeqQueue;voidInitQ
4、ueue(SeqQueue*q){q->front=q->rear=0;}intEnterQueue(SeqQueue*q,intx){if((q->rear+1)%MAXSIZE==q->front){printfC1队满”);return0;}else{q->data[q->rear]=x;q->rear=(q->rear+1)%MAXSIZE;return1;}}intDeleteQueue(SeqQueue*q,int*x){if(q->front=q->rear){printfC1队空”);return0;}else{*x=q-
5、>data[q->front];q->front=(q->front+1)%MAXSIZE;return1;}}intEmptyQueue(SeqQueue*q)if(q->front==q->rear)return0;elsereturn1;}voidmain(){inti,n,x;printfC'iW输入序列数n:”);scanf("%d",&n);printfC初始序列:”);for(i=1;i<=n;i++)printf("%d",i);printfC'Wn");SeqQueueq;lnitQueue(&q);for(i=1;i<
6、=n;i++)EnterQueue(&q,i);printfC1^数出列顺序:”);while(EmptyQueue(&q)){DeleteQueue(&q,&x);printf("%d",x);if(EmptyQueue(&q)){DeleteQueue(&q,&x);EnterQueue(&q,x);}}}运行结果:2431:31跖2JT:列1=1顺序列列入疳齧数caMD:Progra«FileslicrosoftVisual6789101179112610StudioviyProjectsliqDebughq.exe12
7、4128Pressanykeytocontinue3、文本串加密和解密:转换规则:ATZa->zBTYb^zC9Xc->z#include#include#defineMAXLEN100voidmain(){intj,n;chars1[MAXLEN];printfC请输入字符串:Wn");gets(s1);/*********************力口★★★★★★★★★★★★★★★★★★★★★for(j=0;s1[j]!='W0,;j++){if((s1[j]>=,A,)&&(s1[j]<='Z')
8、)s1[j]=155-s1[j];elseif((s1[j]>=*a')&&(s1[j]<='z'))s1[j]=219-s1[j];}n=j;printfC加密字符串为:Wn");puts(