mdsk.net
当前位置:首页 >> C语言检查圆括号是否配对 >>

C语言检查圆括号是否配对

如果只有圆括号(没有[ ] 或 { }),不需要构造一个栈.因为用栈实现时,栈里装的都是一模一样的左括号 '(' ,因此我们只需定义一个 整型变量 来记录 栈中元素的个数 即可.具体代码如下:#include <stdio.h> int main (void) { char input = 0; int

1、设计原理: 主要是利用了栈的结构,在表达式的输入过程中实现对括号是否匹配的判断.根据其括号的原则:小括号之中不能含有大括号或中括号,中括号中不能含有大括号.再由紧密性,左边括号和右边括号是紧密相连的.否则判断为错

status check() { inttStack(s);//构造空栈 push(s,'#');//表示括号串开始 ch=getchar( //有左括号配对,则消解左括号 ch =getchar(); } if(gettop(s,e)!='#')//取栈顶元素与#

#include<stdio.h> char s[1000000]; int main() { int i,c=0; gets(s); //利用任意时刻左括号的个数大于或者等于右括号的个数,而且最终的括号个数相等 for(i=0;s[i];i++) { if(s[i]=='(')c++; else c--; if(c<0)break; } if(c!=0)puts("NO"); else puts("YES"); return 0; }

如果单纯匹配括号数量的话就没错,不过其实一个变量就可以了,左括号+1,右括号-1,最后等于0就说明是匹配的如果真正要做表达式的话那没这么简单的,比如 ((1+2)+)2 这样的表达式

if (cc[i] == '(') left++; if (cc[i] == ')') right++; if (cc[i] == '=') break; if (left == right) printf("圆括号配对正确\n");

char str[100]; int i, count = 0; gets(str); for (i = 0; str[i] != '\0' && count >= 0; i ++) { switch (str[i]) { case '(': count ++; break; case ')': count --; break; } } if (count != 0) printf("error\n"); else printf("right\n");

这个可以简单检查一下, #include #include int judge(char *str) { char tmp; int count=0; int len=strlen(str); for(int i=0;i

#include <conio.h>#include <iostream> using namespace std; int main() {cout<<"输出一个以#结尾的表达式"<<endl; char a; int b=0,c=0; do { cin >> a; if (a=='(') //注意这里是双等号“==”不是单等号,单等号是赋值的意思!! b++; else if (a==')'

#include "seqstack1.h" #include "stdio.h" void bracketmatch(char *str); void bracketmatch(char *str) /* str[]中为输入的字符串,利用堆栈技术来检查该字符串中的括号是否匹配*/ { seqstack s; int i; char ch; initstack(&s); for(i=0; str[i]!='\0'; i++)

rpct.net | nwlf.net | mdsk.net | mydy.net | 4405.net | 网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com