编写程序,判断c语句中的圆括号是否配对

发布网友

我来回答

1个回答

热心网友

如果只有圆括号(没有[ ] 或 { }),不需要构造一个栈。因为用栈实现时,栈里装的都是一模一样的左括号 '(,因此我们只需定义一个 整型变量 来记录 栈中元素的个数 即可。具体代码如下:\x0d\x0a\x0d\x0a#include \x0d\x0a\x0d\x0aint main (void)\x0d\x0a{\x0d\x0a char input = 0; \x0d\x0a int num = 0; /* 不用栈,只记录栈中元素的个数,初始化为0 */\x0d\x0a\x0d\x0a while (1 == scanf ("%c", &input)) /* 读入字符串,每次读一个字符存入 input 中 */\x0d\x0a {\x0d\x0a if ('(== input)\x0d\x0a {\x0d\x0a ++num; /* 相当于把左括号压栈 */\x0d\x0a }\x0d\x0a if (')== input)\x0d\x0a {\x0d\x0a --num; /* 相当于遇到右括号时弹栈 */\x0d\x0a }\x0d\x0a if (0 >num)\x0d\x0a {\x0d\x0a printf ("括号不匹配\n");\x0d\x0a return 0;\x0d\x0a }\x0d\x0a }\x0d\x0a\x0d\x0a if (0 == num) /* 读完字符串后判断“栈”是否为空 */\x0d\x0a {\x0d\x0a printf ("括号匹配\n");\x0d\x0a }\x0d\x0a else\x0d\x0a {\x0d\x0a printf ("括号不匹配\n");\x0d\x0a }\x0d\x0a\x0d\x0a return 0;\x0d\x0a}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com