hhxxzszq 2021-04-10 14:27 采纳率: 0%
浏览 56

C语言 链式栈 括号匹配

用的CB 结果不对 代码哪里有问题呢

#include<stdio.h>
#include<stdlib.h>
int item;

struct node{
char bracket;
struct node* next;};

int judge(char c0,char c)
         {
             if(c==')'&&c0=='('||c=='}'&&c0=='{'||c==']'&&c0=='[')
                return 1;
             else return 0;
         }

void in_struct (char b,struct node* head)
{  struct node*q=(struct node*)malloc(sizeof(struct node));
   q->bracket=b;
   q->next=head;
   head=q;
}

void out_struct(struct node*head)
{
   if(head==NULL)
      printf("has been empty,right bracket left");
   else{item=head->bracket;
        struct node*t=head->next;
        free(head);
        head=t;
        }
}

int main(){

struct node*head=(struct node*)malloc(sizeof(struct node));
char ch;
ch=getchar();
head->bracket=ch;
head->next=NULL;


ch=getchar();
while(ch!='#')
{
    if("ch=='('||ch=='{'||ch=='['")
        in_struct(ch,head);

    else if("ch==')'||ch=='}'||ch==']'")
    {
       if(judge(head->bracket,ch)==1)
          out_struct(head);
       else {printf("unmatched");
              exit(0);}

    }
ch=getchar();
}


if(head->bracket=='('||'{'||'[')
    printf("left bracket left");
 else   printf("succeed");

return 0;

}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-23 18:42
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 vc6.0中想运行代码的时候总是提示无法打开文件是怎么回事
  • ¥25 关于##爬虫##的问题,如何解决?:
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题