qq1183534 2015-04-11 23:55 采纳率: 0%
浏览 1565

我的程序和正确额差不多,到底那里出错了?

用于判断字符串是否是对称的
#include
#include
#include
#include
#define Max 30
typedef struct{
char data[Max];
int top;
}sqstack;
void Initstack(sqstack *&l)
{
l=(sqstack *)malloc(sizeof(sqstack));
l->top=-1;
}
void Destorystack(sqstack *&l)
{
free(l);
}
bool Pushs(sqstack *&l,char &e)
{
if(l->top==-1)return false;
else
{
e=l->data[l->top];
l->top--;
return true;
}
}
bool Pops(sqstack *&l,char e)
{
if(l->top==Max-1)return false;
else
{
l->top++;
l->data[l->top]=e;
return true;
}
}
bool dcc(char a[])
{
int i;
char e;
sqstack *l;
Initstack(l);
for(i=0;a[i]!='\0';i++)Pops(l,a[i]);
for(i=0;a[i]!='\0';i++)
{
Pushs(l,e);
if(e!=a[i])
{
Destroystack(l);
return false;
}
}
Destroystack(l);
return true;
}
void main()
{
if(dcc("abcd")) printf("ok");else printf("err");
if(dcc("abba")) printf("ok");else printf("err");
}

错误的程序,不知道错在哪里。

#include

#include

#include

#include
#define MaxSize 30
typedef char ElemType;
typedef struct{
ElemType data[MaxSize];
int top; //栈顶指针
}SqStack;
void InitStackS(SqStack *&s)
{

s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;

}
void DestroyStackS(SqStack *&s)
{ free(s);}
bool PopS(SqStack *&s,ElemType &e)
{

if (s->top==-1) //栈为空的情况,即栈下溢出
return false;
e=s->data[s->top]; //取栈顶指针元素的元素
s->top--; //栈顶指针减1
return true;
}
bool PushS(SqStack *&s,ElemType e)
{ if (s->top==MaxSize-1) //栈满的情况,即栈上溢出
return false;
s->top++; //栈顶指针增1
s->data[s->top]=e; //元素e放在栈顶指针处
return true;}

bool symmetry(ElemType str[])
{ int i; ElemType e;
SqStack *st;
InitStackS(st); //初始化栈
for (i=0;str[i]!='\0';i++) //将串所有元素进栈
PushS(st,str[i]); //元素进栈
for (i=0;str[i]!='\0';i++)
{ PopS(st,e); //退栈元素e
if (str[i]!=e) //若e与当前串元素不同则不是对称串
{ DestroyStackS(st);//销毁栈
return false;
}
}
DestroyStackS(st); //销毁栈
return true;
}
void main()
{
if (symmetry("abcdefgfedcba")) printf("OK\n"); else printf("NO OK\n");
if (symmetry("abcdefg")) printf("OK\n"); else printf("NO OK\n");
}
正确的程序

  • 写回答

3条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-04-12 00:54
    关注

    怎么叫差不多,肯定是有不一样的地方,你比对一下不就清楚了

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记