?? 1.cpp
字號(hào):
//小小回文游戲獻(xiàn)丑了
#include<stdio.h>
#include<malloc.h>
#define maxsize 50
//******************************************************************// 回文問題
typedef struct Stack
{
char *els;
int top;
int size;
}Stack;
void initStack(Stack &s)
{
s.els=(char *)malloc(maxsize*sizeof(char));
s.top=-1;
s.size=maxsize;
}//構(gòu)造棧
void push(Stack &s,char e)
{
char *newbase;
if(s.top>=s.size-1)
{
newbase=(char *)realloc(s.els,s.size+maxsize*sizeof(char));
if(newbase)
{
s.els=newbase;
s.size+=maxsize;
s.top++;
s.els[s.top]=e;
}else printf("overflow!\n");
}else{
s.top++;
s.els[s.top]=e;
}
}//壓棧
void pop(Stack &s,char &e)
{
if(s.top==-1) printf("Stack under flow!");
else{
e=s.els[s.top];
--s.top;
}
}//彈棧
int stackEmpty(Stack s)
{
return(s.top==-1);
}//判棧空
void main()
{
int count, // 串長(zhǎng)度
i=0,
f=1; // 回文標(biāo)志
char e=' ',a=' ';
Stack hui1,hui2;
initStack(hui1); // 出入棧
initStack(hui2); // 比較棧
printf("請(qǐng)輸入字符串:\n");
scanf("%c",&e);
while(e!='.') // 以'.'結(jié)束
{
push(hui1,e);
scanf("%c",&e);
i++;
}
count=i;
for(i=0;i<count/2;i++) // 輸入棧一半彈出入比較棧
{
pop(hui1,e);
push(hui2,e);
}
if(count%2!=0) pop(hui1,e);
while(!stackEmpty(hui1)&&f) // 比較
{
pop(hui1,e);
pop(hui2,a);
if(a!=e) f=0; // 置回文表置
}
if(f)printf("\n字符串回文\n");
else printf("\n字符串不回文\n");
getchar();
getchar();
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -