C程序花括号嵌套层次统计(新)
【问题描述】
编写程序,统计给定的C源程序中花括号的最大嵌套层次,并输出花括号嵌套序列,该程序没有语法错误。
注意:
1)源程序注释(/* … */)中的花括号应被忽略,不参与统计。
2)源程序中的字符串常量不会出现花括号。
【输入形式】
要检查的C源程序文件名为input.c,在当前目录下。
【输出形式】
向控制台输出花括号的最大嵌套层次数,并在新的一行上按出现的先后顺序输出花括号。
【样例输入】
假如当前目录下input.c文件的内容为:
#include <stdio.h>
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 <cstdio> #include <iostream> #include <stack> #include <algorithm> using namespace std; int main() { freopen("input.c", "r", stdin); char t; ];//储存答案 stack<char> mystack; ; ; ; ; while (cin >> t) { if (t == '/') flag++; == ) { 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'; cout << max_sum << endl; cout << ans; ; }
C程序花括号嵌套层次统计(新)的更多相关文章
- PHP变量作用域(花括号、global、闭包)
花括号 很多语言都以花括号作为作用域界限,PHP中只有函数的花括号才构成新的作用域. <?php if (True) { $a = 'var a'; } var_dump($a); for ($ ...
- 转:PHP变量作用域(花括号、global、闭包)
花括号 很多语言都以花括号作为作用域界限,PHP中只有函数的花括号才构成新的作用域. 01 <?php 02 if (True) { 03 $a = 'var a'; 04 } 05 ...
- 代码优化之return 减少括号嵌套
代码优化之return 减少括号嵌套 例如下面的公共方法 // 优化 substring方法 解决边界越界问题 空指针问题 优化前 public static String subString ...
- TCL 双引号和花括号的区别
用了很一段时间的Modelsim,用TCL脚本仿真,开始注意起来它,看了些资料,有一个问题始终让我很困惑,那就是花括号 的用法,今天Google了一下,觉得有一点豁然了,记录一下.为了不让自己的翻译影 ...
- Python的精髓居然是方括号、花括号和圆括号!
和其他编程语言相比,什么才是Python独一无二的特色呢?很多程序员会说,缩进.的确,缩进是Python语言的标志性特点,但这只是外在的.形式上的.从语言特性层面讲,Python的特点是什么呢?我尝试 ...
- 微信小程序web-view(webview) 嵌套H5页面 唤起微信支付的实现方案
场景:小程序页面有一个web-view组件,组件嵌套的H5页面,要唤起微信支付. 先讲一下我的项目,首先我是自己开发的一个H5触屏版的商城系统,里面含有购物车,订单支付等功能.然后刚开始,我们公众号里 ...
- PHP的大括号(花括号{})使用详解
一.不管什么程序,function name(){}, for(){}, ….这太多了,不说也知道什么用了. 二.$str{4}在字符串的变量的后面跟上{}大括号和中括号[]一样都是把某个字符串变量当 ...
- C/C++中无条件花括号的妙用
C/C++中无条件花括号可以形成一个代码块,一个作用域.可以使括号内定义的变量就只在本域(就是这个大括号)内有效,而且不会影响其他域,即使名字相同. 在花括号内,如果变量前面带类型,则相当于新创建一个 ...
- switch case语句里面不能定义对象,有语法错误,除非加一个花括号
最近发现一个问题呢 发现在switch的case里面不能去定义对象了,一定义对象就会报错了 仔细了解了一下在C或者C++中,只要是在任何一对花括号 “{ }”中定义的对象,那么该对象的作用域就局限在这 ...
随机推荐
- 自定义URL协议在Web中启动本地应用程序
转自(http://blog.csdn.net/jackychen_king/article/details/7743811) 1.注册应用程序来处理自定义协议 你必须添加一个新的key以及相关的va ...
- MySQL20个经典面试题
MySQL20个经典面试题 Part2:经典题目 1.MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联: 2.MySQL中myisam与innodb的区别,至少5点 (1).问5点不 ...
- 网络编程的基本概念,TCP/IP协议简介
8.1.1 网络基础知识 计算机网络形式多样,内容繁杂.网络上的计算机要互相通信,必须遵循一定的协议.目前使用最广泛的网络协议是Internet上所使用的TCP/IP协议. 网络编程的目的就是指直接或 ...
- 如何自定义FileZilla编辑文件的默认打开方式
看一下设置: 原来是人家默默认不给我们提示 改一下: 还是不行,还是跳到网页去了 还是不行 这样就好了...
- SQL基础五(作业代码)
create database stuinfo create table student ( mid ) not null primary key, mname ) not null ) create ...
- vuex(二)getters
getters: 有时候,我们需要对state的数据进行筛选,过滤.这些操作都是在组件的计算属性进行的.如果多个组件需要用到筛选后的数据,那我们就必须到处重复写该计算属性函数:或者将其提取到一个公共的 ...
- notes on Art Pipeline
Do not add complex clothes/facial hair to a model for Mixamo to auto rig, it will cause confusion. A ...
- 使用HttpURLConnection请求multipart/form-data类型的form提交
写一个小程序,模拟Http POST请求来从网站中获取数据.使用Jsoup(http://jsoup.org/)来解析HTML. Jsoup封装了HttpConnection的功能,可以向服务器提交请 ...
- Android HOOK工具Cydia Substrate使用详解
目录(?)[+] Substrate几个重要API介绍 MShookClassLoad MShookMethod 使用方法 短信监控实例 Cydia Substrate是一个代码修改平台.它可以修 ...
- selenium-java,cookie登陆
方法 public void login(WebDriver WebDriver,String cookie1[],String cookie2[]) throws ParseException{// ...