Berumottox 2015-05-01 16:37 采纳率: 54.5%
浏览 1377

运行结果错误,找不到哪里有问题?

#include
#include
#include
#define Chushi 100
#define Zengliang 10
#define SElemType int
#define ERROR 0
#define OK 1

typedef struct
{
SElemType base;
SElemType top;
char data[100];
int StackSize;
}SqStack;

void JianStack(SqStack *S)
{
S->top=0;
S->base=0;
S->StackSize = Chushi;
}

int Push(SqStack *S,char x)

{
if(S->top-S->base>=S->StackSize-1)
{
S->StackSize+=Zengliang;
}
S->data[S->top]=x;

S->top++;

return OK;
}

int GetTop(SqStack *S,char e)
{
if(S->top==S->base) return ERROR;
else
{
e = S->data[S->top-1];

return OK;
}
}

int DeleteTop(SqStack *S,char d)
{
if(S->base==S->top) return ERROR;
else
{
d=S->data[S->top-1];
S->top--;
return OK;
}
}

int main(void)

{
SqStack S;
int count=0,i,j;
char kuohao[10],e='1',x,d;
JianStack(&S);
printf("Please input bracket?:");
scanf("%s",&kuohao);
do
{
count++;
}while(kuohao[count]!='\0');

printf("%d",&count);

for(j=0;j<count;j++)
{
    printf("%s",kuohao[j]);
}

for(i=0;i<count;i++)
{
    if(i==count-1)
    {
        if(kuohao[i]=='('||kuohao[i]=='[')
        {
            i=i-1;
            printf("ERROR!");
            break;
        }
    }
    if(kuohao[i]=='(') 
    {
        GetTop(&S,e);
        if(e==')') DeleteTop(&S,d);
        else 
        {
            x = kuohao[i];
            Push(&S,x);
        }
    }
    else if(kuohao[i]=='[')
    {
        GetTop(&S,e);
        if(e==']') DeleteTop(&S,d);
        else 
        {
            x = kuohao[i];
            Push(&S,x);
        }
    }
    else if(kuohao[i]==')')
    {
        GetTop(&S,e);
        if(e=='(') DeleteTop(&S,d);
        else 
        {
            printf("ERROR!");
            break;
        }
    }
    else if(kuohao[i]==']')
    {
        GetTop(&S,e);
        if(e=='[') DeleteTop(&S,d);
        else 
        {
            printf("ERROR!");
            break;
        }
    }
}
if(i+1==count)printf("YES!");
else printf("NO!");

}

  • 写回答

1条回答 默认 最新

  • 91program 博客专家认证 2015-05-02 01:25
    关注

    运行错误,你至少要说明一下是什么错误吧!让别人猜可不太好哦!!!
    或者,说明一下你想要什么结果,但是却得到了不对的结果、或者就得不到结果。这些总要说明一下吧!

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大