手机版

检测输入一行if语句中的圆括号是否匹配正确

发布时间:2021-06-06   来源:未知    
字号:

25.编程的时候,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<stdio.h>
#include<string.h>
int main()
{
char s[800]={'\0'};
scanf("%s",&s);
// char s[]="if(())";
int len=strlen(s);
int i,left=0,right=0;
int a[50],k=0,flag=1;
for(i=0;i<len;i++)
{
if(s[i]=='(')
{
left++;
a[k]=1;
k++;
}
else if(s[i]==')')
{
right++;
if(a[k-1]==1&&k>0)
{
a[k-1]=0;
k--;
}
else
flag=0;
}
if((i==2&&s[i]!='(')||(i==len-1&&s[i]!=')'))
flag=0;
}
if(a[
0]==0&&flag!=0)
printf("RIGHT");
else
printf("WRONG");
printf("%d %d\n",left,right);
return 0;
}


检测输入一行if语句中的圆括号是否匹配正确.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)