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 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么