c语言递归判断大中小括号是否匹配的问题,这个程序我没想通哪里出问题,大牛帮我看一看,我不想用栈解决
电脑上必备的软件有哪些?
?:的意思是条件运算符,使用的格式如下(条件)?A:B,如果条件成立,表达式的值就是A,否则是B。
!的意思是用来取非运算的,!true的结果就是 false !false 的结果是 true。
写程序中,?:用的比较少,!主要用在条件判断中。
延展回答:
1、C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
2、尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
3、C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
你的问题估计出在fun函数里if判断中,达成条件return了结果后,下一步的fun(++p)都不会再执行。当某一个计数器小于0时,你期望的继续递归没了。其实没那么复杂。我改了一个给你。纯手机输入,请采纳。
#include <stdio.h>
#include <stdlib.h>
int fun(char *p){
int k1=0,k2=0,k3=0;
while(*p!='\0'){
if(*p=='{')
k1++;
if(*p=='[')
k2++;
if(*p=='(')
k3++;
if(*p=='}')
k1--;
if(*p==']')
k2--;
if(*p==')')
k3--;
p++;
}
if(k1!=0||k2!=0||k3!=0){
return 0;
}
return 1;
}
int main(){
char *p="[()])";
if(fun(p))
printf("ok");
else
printf("no");
return 0;
}
c语言递归判断大中小括号是否匹配的问题,这个程序我没想通哪里出问题...
你的问题估计出在fun函数里if判断中,达成条件return了结果后,下一步的fun(++p)都不会再执行。当某一个计数器小于0时,你期望的继续递归没了。其实没那么复杂。我改了一个给你。纯手机输入,请采纳。include <stdio.h>#include <stdlib.h>int fun(char *p){ int k1=0,k2=0,k3=0; ...
汉诺塔递归问题
从左到右 A B C 柱 大盘子在下, 小盘子在上, 借助B柱将所有盘子从A柱移动到C柱, 期间只有一个原则: 大盘子只能在小盘子的下面.如果有3个盘子, 大中小号, 越小的越在上面, 从上面给盘子按顺序编号 1(小),2(中),3(大), 后面的原理解析引用这里的编号.递归算法简单来说就是方法内部自...
PHP是什么?
PHP(中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到...
c语言入门教学
C语言程序严格区分字母的大、小写,此规则一定给学生讲清楚,让其记住那些特例。如用科学计数法表示浮点数中的“E”,弄清该计数法的规则,其中的字母“E”可以不区分大、小写;再如表示16进制数的符号“0x”,其中字母“x”也可不区分大、小写等等,在教学过程中,对该类问题进行总结、归纳让学生一次就掌握并记住。3....
php&mysql表中3个字段Pdshuzic,Pdshuziy,Pdshuzi如何求递归求和...
MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。 MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、...
计算机的发展历史
中小规模集成电路成为计算机的主要部件,主存储器也渐渐过渡到半导体存储器,使计算机的体积更小,大大降低了计算机计算时的功耗,由于减少了焊点和接插件,进一步提高了计算机的可靠性。在软件方面,有了标准化的程序设计语言和人机会话式的Basic语言,其应用领域也进一步扩大。[3] 折叠编辑本段第四代 大规模和超大规模集成...
求09年3月计算机二级C语言笔试答案
http:\/\/blog.sina.com.cn\/rourou881225[订阅]肉肉儿博客 相册 音乐 播客 个人中心 首页博文收藏博客圈字体大小:大中小 正文 09年3月全国计算机考试三级网络技术笔试答案(2009-03-29 22:27:32)标签:杂谈 09年3月全国计算机考试三级网络技术笔试试题答案一、选择题(每小题1分,共60分)(1)1959年10月我国研制...
想要自学JAVA,应该如何入门?
数据库是学习Java语言必学的一项内容,常见的数据库就是MySQL和Oracle这两种,作为初学者一般都是学习MySQL为主,一般情况下中小型企业都会选择MySQL数据库,比较大型的互联网公司会选择用Oracle,而学习Oracle相对于MySQL也要复杂一庆乎些,建议是主要学习MySQL数据库,Oracle作为了解即可。学习数据库较为简单,基本的操作就是...
学习C语言有哪些好的书籍推荐吗
C语言程序严格区分字母的大、小写,此规则一定给学生讲清楚,让其记住那些特例。如用科学计数法表示浮点数中的“E”,弄清该计数法的规则,其中的字母“E”可以不区分大、小写;再如表示16进制数的符号“0x”,其中字母“x”也可不区分大、小写等等,在教学过程中,对该类问题进行总结、归纳让学生一次就掌握并记住。3....
牟鸿至圣: 从左到右判断,遇上左括号就入栈,遇上右括号就弹出一个左括号! 如果栈空依旧需要弹出左括号,则右括号不配对! 如果表达式完成之后栈不空,则左括号不配对! 表达式完成,栈空!括号配对! 需要代码的话再hi我吧……
若羌县15232245909: 用C或C++编写 括号配对检查程序 - ?
牟鸿至圣: 思路倒是简单,就是利用栈来匹配.简单的数据结构应该包括 符号类型(区分小中大括号),括号出现在字符串的位置这些.读入字符,如果是左括号,则入栈,如果是左注释/则看后面是否有*如果有,则一直到*/才结束.如果是有括号,则看是否跟栈上匹配,如果匹配,则把这个括号左右位置和类型放入一个数组什么的,以备后面用户检索对应位置.如果不匹配,则有错误.到最后,栈应该为空,否则也是不匹配.具体代码编写需要考虑更多情况,比如不能越过字符数组边界等.随风的代码没有处理注释,另外,没有记录符号配对位置.还有好像只能处理括号了,不太符合题意要求
若羌县15232245909: C语言判断给定表达式的括号是否匹配 - ?
牟鸿至圣: #include <stdio.h> #include <stdlib.h>int main(int argc, char *argv[]) {char c;int i=0,n;int output[100];int lefts=0,leftm=0,leftb=0;int rights=0,rightm=0,rightb=0;while((c=getchar())!='*'){if(c=='\n'){if(lefts == rights && leftm == rightm && leftb ==...
若羌县15232245909: C语言 判断括号()是否匹配 - ?
牟鸿至圣: char str[100]; int i, count = 0; gets(str); for (i = 0; str[i] != '\0' && count >= 0; i ++) {switch (str[i]){case '(':count ++;break;case ')':count --;break;} } if (count != 0)printf("error\n"); elseprintf("right\n");
若羌县15232245909: 急求c语言编写的利用栈检验括号匹配的程序完整代码,谢谢啦~ - ?
牟鸿至圣: 输入:串中只含有'(', ')'两个符号,判断是否括号匹配 并不需要真正的入栈、出栈,用top移动模拟即可 #include <stdio.h> int main() {char s[256], *p;int top = 0;scanf("%s", s); for(p=s; *p; p++){if(*p == '(')++top; //入else --top; //出if(top < 0)break; //无左括号与之匹配}if(!*p && !top)puts("Yes");else puts("No"); }
若羌县15232245909: 用栈判断表达式中的括号是否配对? - ?
牟鸿至圣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46intmatched(char* s) {charstack[1024];intn = 0;while(*s){switch(*s){case'(':if(n < 1024)stack[n++] = '(';...
若羌县15232245909: 求用C语言做简单的括号匹配程序 ? - ?
牟鸿至圣: 头文件:(另存为SeqStack.h) typedef struct { DataType stack[MaxStackSize]; int top; } SeqStack; void StackInitiate(SeqStack *S) /*初始化顺序堆栈S*/ { S->top = 0; /*定义初始栈顶下标值*/ } int StackNotEmpty(SeqStack S) /*判顺序堆栈S非空...
若羌县15232245909: C语言 括号是否匹配. - ?
牟鸿至圣: 先按顺序取出所有的括号.然后循环删除_相邻的_差为一或二的_点.最后如果表空则匹配. 单向链表:#include <stdio.h> #include <string.h> #include <stdlib.h> #define LEN 80 typedef struct list{ char node; struct list* next; }list,*plist;void iniList(plist...
若羌县15232245909: 一道C语言题目:编写程序检查输入的算术表达式中括号是否配对,并显示出结果. - ?
牟鸿至圣: if(c=='(') l++; else if(c==')') r++;if(l==r) printf("yes"); else printf("no");
若羌县15232245909: 判断圆括号是否配对用C语言如何实现 - ?
牟鸿至圣: 如果只有圆括号(没有[ ] 或 { }),不需要构造一个栈.因为用栈实现时,栈里装的都是一模一样的左括号 '(' ,因此我们只需定义一个 整型变量 来记录 栈中元素的个数 即可.具体代码如下:#include <stdio.h> int main (void) { char input = 0;int ...