[c语言括号匹配]有些特殊解没考虑:当左括号溢出的时候(即左括号大于右括号) 如: 1 2 3 4 5 //在一个合法的括号匹配 左边 加上 不比最外层括号小 的括号 程序将输出错误。 如 { //以及单单一个[...+阅读
#include
#include
int main(int argc, char *argv[])
{
char c;
int i=0,n;
int output[100];
int lefts=0,leftm=0,leftb=0;
int rights=0,rightm=0,rightb=0;
while((c=getchar())!='*')
{
if(c=='\n')
{
if(lefts == rights & leftm == rightm & leftb ==rightb)output[i]=1;
else output[i]=0;
lefts=0;
leftm=0;
leftb=0;
rights=0;
rightm=0;
rightb=0;
i++;
}
if(c == '(' )lefts++;
if(c == ')' )rights++;
if(c == '[' )leftm++;
if(c == ']' )rightm++;
if(c == '{' )leftb++;
if(c == '}' )rightb++;
}
n=i;
for(i=0;i { if(output[i]==1)printf("yes\n"); else printf("no\n"); } system("pause"); return 0; } 这是程序,当输入星号*就结束。不论是否一行只有它。有点不符合题意呃。你可以改改。 上面那个人写的为单行输入。且没有考虑中括号和大括号。 以下为关联文档: c语言括号配对程序//这题也可用到数组完成的,如下所示,有问题可以随时联系 //不过你给出的输出结果不正确吧,应是这样的: /* 0 16 1 5 11 15 */ #include <stdio.h> #include "stdlib.h" #include "i... c语言括号配对问题#include<stdio.h> int main() { int n,j,i; scanf("%d",&n); for(;n>0;n--) { char s[1000]={0}; //不超过1000表示最示最大1000个字符,要给\0留个位置 scanf("%s",s); j=0; //j... c程序设计中的括号匹配问题描述 1设某一算术表达式中包含圆括号int isMatch(char *expr) { int i; int flag1 = 0,flag2 = 0,flag3 = 0; for(i = 0; expr[i]; ++i) { if(expr[i] == '(') ++flag1; if(expr[i] == ')') --flag1; if(expr[i... 判断圆括号是否配对用C语言如何实现如果只有圆括号(没有[ ] 或 { }),不需要构造一个栈。因为用栈实现时,栈里装的都是一模一样的左括号 '(' ,因此我们只需定义一个 整型变量 来记录 栈中元素的个数 即可。具体代码如... 数据结构里括号匹配的程序用C语言编写的#includeusing namespace std; #define maxsize 100 struct sStack { char sign[maxsize]; int top; }; int InitsStack(sStack &SS) { SS.top=-1; return 1; } int IsEmpty... 编写一个测试程序检查一个C语言程序中括号的配对情况头文件:(另存为SeqStack.h)typedef struct{ DataType stack[MaxStackSize]; int top;} SeqStack;void StackInitiate(SeqStack *S) /*初始化顺序堆栈S*/{ S->top = 0; /*定义初... c语言括号匹配问题栈我写的程序感觉有点错找不到原因大概有这3个问题:1. 资源没有清理2. 部分逻辑错误3. 栈操作错误 带注释修改如下:#include#include#includestruct Node { char fuhao; struct Node *next; }; struct S { stru... 用C或C编写括号配对检查程序思路倒是简单,就是利用栈来匹配。简单的数据结构应该包括 符号类型(区分小中大括号),括号出现在字符串的位置这些。 读入字符,如果是左括号,则入栈,如果是左注释/则看后面是否有*如... C语言问题括号配对#include <iostream> #include <stack> #include <string> using namespace std; int main() { int N; cin>>N; while(N--) { string a; stack<char> s; cin>>a; for(int i=...