标题:小问题,大家随便看一下,拯救一下我这个小菜鸟
取消只看楼主
真实的地瓜
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-9-24
结帖率:50%
已结贴  问题点数:16 回复次数:0 
小问题,大家随便看一下,拯救一下我这个小菜鸟
题目:编写一个算法利用顺序栈判断一个字符串是否是对称串。所谓对称串是指从左向右读和从右向左读的序列相同。
我的程序:
#include<stdio.h>
#include<stdlib.h>

typedef struct
{  int data[10];
   int top;
}SqStack;

void InitStack(SqStack *&s)
{  s=(SqStack *)malloc(sizeof(SqStack));
   s->top=-1;
}

int Push(SqStack *&s,int e)
{  if(s->top=-1)
      return 0;
   s->top++;
   s->data[s->top]=e;
   return 1;
}

int Pop(SqStack *&s,int &e)
{  if(s->top==-1)
     return 0;
   e=s->data[s->top];
   s->top--;
   return 1;
}

int symmetry(int a[])  //书上给出的算法
{  int i;
   int e;
   SqStack *st;
   InitStack(st);
   for(i=0;a[i]!='\0';i++)
       Push(st,a[i]);
   for(i=0;a[i]!='\0';i++)
   {  Pop(st,e);
      if(a[i]!=e)
          return(0);
      }
   return(1);
}

void main( )
{
    int a[10]={1,2,3,4,5,5,4,3,2,1};
    int m;
    m=symmetry(a);
    switch(m)
    {
    case 0:printf("%s\n","wrong");break;
    case 1:printf("%s\n","right");break;
    }
}
运行无错误,但是运行结果总是显示“wrong”,没有显示“right”的时候,是不是我的数组赋值错了
搜索更多相关主题的帖子: include return 字符串 
2013-09-29 21:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-421287-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.080650 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved