编程的时候,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);
}