关闭

if语句中括号的匹配

350人阅读 评论(0) 收藏 举报
分类:


编程的时候,if条件里面的“(”、“)”括号经常出现不匹配的情况导致编译不过,请编写程序检测输入一行if语句中的圆括号是否匹配正确。同时输出语句中出现的左括号和右括号数量,如if((a==1)&&(b==1))是正确的,而if((a==1))&&(b==1))是错误的。注意if语句的最外面至少有一对括号。
输入:if((a==1)&&(b==1))
输出:RIGTH 3 3
输入:if((a==1))&&(b==1))
输出:WRONG 3 4
#include<iostream>
#include<stack>
using namespace std;
void getResult(char *str)
{
 stack<char> c;
 if(str==NULL)
  return;
 int len=strlen(str);
 int flag=1;
 int left=0;
 int right=0;
 char *a="RIGHT";
 char *b="WRONG";
 char *p=a;
 for(int i=0;i<len;i++)
 {
  if(str[i]=='(')
  {
   left++;
   c.push(str[i]);
  }

  if(str[i]==')')
  {
   right++;
   if(c.size()-1==0&&i!=len-1)
   {
    flag=0;
    p=b;
   }
  }
 }
 if(left!=right)
  p=b;
 cout<<p<<" "<<left<<" "<<right<<endl;


}

void main()
{
 char str[1000];
 gets(str);
 getResult(str);

}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13098次
    • 积分:628
    • 等级:
    • 排名:千里之外
    • 原创:52篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章存档