c语言字符串大括号,C程序花括号嵌套层次统计(新)(示例代码)

【问题描述】

编写程序,统计给定的C源程序中花括号的最大嵌套层次,并输出花括号嵌套序列,该程序没有语法错误。

注意:

1)源程序注释(/* … */)中的花括号应被忽略,不参与统计。

2)源程序中的字符串常量不会出现花括号。

【输入形式】

要检查的C源程序文件名为input.c,在当前目录下。

【输出形式】

向控制台输出花括号的最大嵌套层次数,并在新的一行上按出现的先后顺序输出花括号。

【样例输入】

假如当前目录下input.c文件的内容为:

#include

main()

{

int a,b,i,sum1,sum2;

/*{input}*/

scanf("%d%d",&a,&b);

sum1=sum2=0;

for(i=a;i<=b;i++)

{

if(i%2==0)

{

sum1+=i;

}

else

{

sum2+=i;

}

}

/*{output}*/

printf("Sum1=%d, Sum2=%d",sum1,sum2);

}

【样例输出】

3

{{{}{}}}

【样例说明】

源程序input.c中的花括号的最大嵌套层次为3,所以输出3。然后顺序输出出现的花括号(注释中的花括号应被忽略),即:{{{}{}}}。

【评分标准】

该题要求输出源程序中花括号的最大嵌套层次数及花括号序列,共有5个测试点。上传C语言文件名为exam3.c。

#include #include#include#include

using namespacestd;intmain() {

freopen("input.c", "r", stdin);chart;char ans[1000];//储存答案

stackmystack;int len = 0;int flag = 0;int max_sum = 0;int sum = 0;while (cin >>t) {if (t == ‘/‘)

flag++;if (flag % 2 == 0) {if (t == ‘{‘) {

ans[len++] = ‘{‘;

mystack.push(t);

sum++;

}else if (t == ‘}‘) {

ans[len++] = ‘}‘;

mystack.pop();

sum--;

}

}

max_sum=max(max_sum, sum);

}

ans[len]= ‘

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值