永发信息网

c语言程序填空题

答案:3  悬赏:0  手机版
解决时间 2021-04-24 14:55

程序填空题
tk609.c程序实现检查任意输入的字符串s中左括号的个数是否与右括号的个数相同并且按从左到右的顺序查找右括号的个数在任何时候都不超过之前所遇到的左括号的个数。若满足条件则输出“符合要求”,否则输出“不符合要求”。

请在括号[ ]处补充完整程序,并删除[ ],运行测试,实现上述要求。不得增加行或删除行,也不得更改程序结构。

---------------------------------------------------

#include <stdio.h>
int f(char *s)
{
int i=0,j=0;
while(*s!='\0')
{
if(*s=='(')
i++;
else if(*s==')')
{
j++;
if([ ])
return 0;
}
[ ]
}
return 1;
}

void main()
{
char s[50];
int n;
printf("请输入一个字符串: ");
gets(s);
n=f(s);
if(n)
printf("符合要求\n");
else
printf("不符合要求\n");
}

最佳答案

#include <stdio.h>
int f(char *s)
{
int i=0,j=0;
while(*s!='\0')
{
if(*s=='(')
i++;
else if(*s==')')
{
j++;
if(j>i) //如果右括号多于左括号,返回0
return 0;
}
s++; //字符数组地址加1,查看下一个字符
}
return 1;
}


void main()
{
char s[50];
int n;
printf("请输入一个字符串: ");
gets(s);
n=f(s);
if(n)
printf("符合要求\n");
else
printf("不符合要求\n");
}

全部回答

j>i 不符合要求时 返回0

s++; 指针后移

不过我觉得这道题不完整,应该在while 循环return 1之间加一个条件判断

if(i==j) return 1;

else return 0;

否则我举一个例子 ((((((()))(( 这种情况貌似也会打印出 符合要求

#include <stdio.h> int f(char *s) { int i=0,j=0; while(*s!='\0') { if(*s=='(') i++; else if(*s==')') { j++; if(j>i) return 0; } s++; } return 1; }

void main() { char s[50]; int n; printf("请输入一个字符串: "); gets(s); n=f(s); if(n) printf("符合要求\n"); else printf("不符合要求\n"); }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么刷新最近访客?
怎么天然去痣
+10的天惟巨兽精灵银刃重甲腰带(最上级)值
滴滴出行从承德到北京大概多少钱
我现在17岁了,好像都不做遗精的梦了,为什么
川越时空大润发店在什么地方啊,我要过去处理
娃娃脸的人,剪沙宣可爱么
为什么我的Y460双显卡切换不了
诺基亚5530为什么连接不到诺基亚蓝牙耳机(52
关于高一的学习
保险公司开业口号,开业一周年庆典主持人词
玉环人均消费和上海比
酱油鸡的做法
请问从綦江到荣昌的老路怎么走
求 天下霸唱 《死亡循环》 txt版 全本
推荐资讯
谁有凉生我们可不可以不忧伤的全集电子书
个人喝啤酒问题!
淘宝先锋地址在什么地方,想过去办事
是时间让距离变远了,还是距离延长了思念的时
电脑版支付宝怎么转账,支付宝转账的时候怎么
我想忘了你的句子,我以前看到一篇文章 关于人
网页内闪图闪一下就不见了
有花字末字的诗句,带有花字的诗句
稀疏的意思,二年级语文疏疏的意思是什么?
对学生会发展寄语,学生会的寄语 要求传递正能
龙之谷剑圣剑系加点
太阳风暴到底是什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?