问题 : 2019阶段1考试 题目3
时间限制: 1 Sec 内存限制: 128 MB
提交: 3535 解决: 995
[提交][状态][讨论版]
题目描述
编写一个程序,从键盘输入读取C源代码,并验证所有的花括号都正确地成对出现。
输入
若干行英文程序代码
输出
若全部正确输出"Yes",若出现不匹配的右花括号,则输出"No(-1)"并结束程序,
若有不匹配的左花括号,则输出"No(不匹配的左花括号个数)"。
样例输入
while((ch = getchar()) != EOF){ if(ch == '}' && count > 0){ count--; } }
样例输出
No(-1)
提示
需要注意的是:文件结束符EOF,在Windows下为组合键Ctrl+Z,在Unix/Linux下为组合键Ctrl+D
代码实现
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
char ch = '0';
int count = 0;
while ((ch = getchar()) != EOF) {
if (ch == '{') {
count++;
}
if (ch == '}') {
count--;
}
}
if (count == 0) {
printf("Yes\n");
return 0;
}
if (count < -1) {
count = -1;
}
printf("No(%d)\n", count);
return 0;
}