一道验证花括号匹配的编程题

//编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现
#include<stdio.h>
int main()
{
	int ch=0;
	int count=0;
	while((ch=getchar())!=EOF)
	{
	if(ch==‘{‘)
	count++;
	else if((ch==‘}‘)&&(count==0))
	{
	printf("匹配不成功!\n");
	}
	else if((ch==‘}‘)&&(count!=0))
		count--;
	}
	if(count==0)
	printf("匹配成功!\n");
	else
		printf("匹配不成功!\n");
	system("pause");
return 0;
}

运行结果如下:


时间: 2024-11-10 07:49:10

一道验证花括号匹配的编程题的相关文章

C语言::验证花括号成对出现

题目要求 编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现. 注意:你不必担心注释内部.字符串常量内部和字符常量形式的花括号. 算法分析 我们先判断左花括号的数量是否相等. 如果左右花括号数量不等,肯定不成对! 如果左右花括号数量相等,一定就成对吗??? 好像也不一定. 我们来举例分析一下,左右花括号相等时可能会出现的情况: 1.{{{{{}}}}}(匹配) 2.{}{}{}{}{}(匹配) ... 3.}}}}}{{{{{(不匹配) 4.{{{{}}}}}{(

20/32/22/856/301/921 Parentheses 括号匹配或者生成题

20. https://leetcode.com/problems/valid-parentheses/description/ 32. https://leetcode.com/problems/longest-valid-parentheses/description/ 22. https://leetcode.com/problems/generate-parentheses/description/ 856. https://leetcode.com/problems/score-of-

从标准输入读取C源代码,并验证所有的花括号都正确的成对出现

#include<stdio.h> #include<process.h> int main() { char c = 0; int count = 0; while ((c = getchar()) != EOF) { if (c == '{') { count++; } else if (c == '}'&&count == 0) { printf("花括号不匹配!"); return 0; } else if (c == '}'&&

新华三:括号匹配

题目: 有表达式:(x+y)*(x-y),验证是否括号匹配,如果括号匹配请输出其括号嵌套深度 Java: 1 import java.util.Scanner; 2 import java.util.Stack; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 Scanner sc=new Scanner(System.in); 8 while(sc.hasNext()){ 9 String s = s

POJ C程序设计进阶 编程题#4:括号匹配问题

编程题#4:扩号匹配问题 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在某个字符串(长度不超过100)中有左括号.右括号和大小写字母:规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配.写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号.不能匹配的左括号用"$"标注,不能匹配的右括号用&quo

简单C编程题-同位相同的N项之和/标准输入花括号成对判断/行号行输出

//求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222 #include <stdio.h> int main() { int a,n,sum; int i,j; sum = 0; printf("请输入项数和a的值"); scanf("%d%d",&a,&n); j = a; for(i = 1;i <= n;i++) { sum = sum+a; a = j

赛码网的一道百度编程题

最近偶尔接触到这个赛码网,看了百度的一道编程题,于是尝试了一下,发现虽然天天写代码实现这个居然花了我好长时间,仍然没有通过全部案例.目前给的通过率是83% 题目如下: 小B最近对电子表格产生了浓厚的兴趣,她觉得电子表格很神奇,功能远比她想象的强大.她正在研究的是单元格的坐标编号,她发现表格单元一般是按列编号的,第1列编号为A,第2列为B,以此类推,第26列为Z.之后是两位字符编号的,第27列编号为AA,第28列为AB,第52列编号为AZ.之后则是三位.四位.五位--字母编号的,规则类似. 表格单

【求助】一道考验脑细胞的编程题

要求计算S的面积.注意:仅计算面积,不区分正负,如果围成的图形被x轴分割为上下两部分,那么就求上下两部分面积之和. 输入多项式fx,以字符串表示,格式为:4*x^5-x^2+5*x+12,多项式表达式不包含括号,可能包含空格.数字.字母x.^.*.+.-,保证多项式最高次幂为非负整数,且最高次幂不超过10. 表达式中4*x^5与4x^5等价,如下面的表达式是合法的: x^10-5x^1 -4*x^1 + 5x^0 2.3x^4 - 2.56*x + 1 输入不会出现下列类型的表达式: x(x+5

编程题:编写一个函数string_copy()完成strcpy()的作用,并验证。

#include<stdio.h> void string_copy(char *s1,char *s2) {   for(;*s2!='\0';s1++,s2++) *s1=*s2; *s1='\0'; } void main() { char str1[20],str2[]="I like C"; char *p1=str1,*p2=str2; string_copy(p1,p2); printf("str1:%s\t str2:%s\n",str1