m0_64391767 2022-05-26 16:59 采纳率: 88.9%
浏览 24
已结题

括号匹配的检验C语言

第75行的cin有什么用,为什么删掉之后,运行输入空格的话无法出结果

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 
#include<iostream>
using namespace std; 
typedef char SElemType;
typedef struct{
    SElemType *base;//栈顶指针 
    SElemType *top;//栈底指针 
    int stacksize;//栈可用最大容量 
}SqStack;
int InitStack(SqStack &S){
    S.base=new SElemType[MAXSIZE];//为栈分配一个容量为MAXSIZE的数组空间
    if(!S.base) 
        exit(-1);//如果分配失败,退出
    S.top=S.base;//空栈
    S.stacksize=MAXSIZE;//设置栈的最大容量 
    return 1;     
}
SElemType GetTop(SqStack S)
{
    if(S.top!=S.base)
        return *(S.top-1);
}
int StackEmpty(SqStack S){
    if(S.top==S.base)
        return 1;
    
    else
        return 0;
    }
int Push(SqStack &S,SElemType e)
{
    if(S.top-S.base==S.stacksize)//判断栈是否满 
        return 0;
    *S.top++=e;//将元素放入栈顶
    return 1; 
}
int Pop(SqStack &S,SElemType &e)
{
    if(S.top==S.base)
        return 0;
    e=*--S.top;
    return 1; 
}
int main()
{
    char ch,x;
    SqStack S;
    InitStack(S);
    int flag=1;
    cout<<"在表达式结尾输入#来结束表达式:"<<endl; 
    cin>>ch;
    while(ch!='#'&&flag)//以#来结束表达式 
    {
        switch(ch)
        {
            case '[':
            case '(':
                Push(S,ch);
                break;
            case ')':
                if(!StackEmpty(S)&&GetTop(S)=='(')
                    Pop(S,x);
                else
                    flag=0;
                    break;
            case ']':
                if(!StackEmpty(S)&&GetTop(S)=='[')
                    Pop(S,x);
                else 
                    flag=0;
                break;
        }
        cin>>ch;
    }
    if(StackEmpty(S)&&flag)
        printf("匹配成功"); 
    else
        printf("匹配失败"); 
 } 


img


如果不想要75行的cin,想要删掉他,应该如何修改才能不影响正常运行

  • 写回答

1条回答 默认 最新

  • taigumodao 2022-05-26 17:15
    关注

    第75行是让你再次输入的,如果删了,而且前面输入的值无法退出循环,这就会陷入死循环

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月13日
  • 已采纳回答 12月5日
  • 创建了问题 5月26日

悬赏问题

  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。