C语言程序题

难道这里的s[0]不是0吗?为什么答案是3呀... 难道这里的s[0]不是0吗?为什么答案是3呀 展开
 我来答
萌宠奇趣秀
2019-02-26 · 承包你每天24小时的快乐
萌宠奇趣秀
采纳数:163 获赞数:453

向TA提问 私信TA
展开全部

首先,你要明白,这里最后输出的不是s[0], 而是计数器 n (用于统计[0, 9]之间的数字字符的个数)。

运行代码的输出结果如下:

在char []s 类型的字符串中, ‘\0’是字符串的结束符,即遇到'\0'后,整个字符串就结束了。

在你题目的代码中 由if(s[i] >= '0' && s[i]<='9') 条件判断可以, 是在求[0,9]之间的数字字符的个数。

在定义的字符串char s[] = "012xy\08s3f4w2";中,遇到结束符前的字符串“012xy”中, 只有“012”三个满足条件的数字;所以最终打印的n的值为 3 。

如果以上问题对你有帮助,请采纳一下,谢谢。

听不清啊
高粉答主

2019-02-26 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
这里的s[0]不是0(ASCII值为0),而是'0'字符(ASCII值0 48),因为s[5]='\0',而在此之前有3个数字字符,所以程序运行的输出是3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
到处day
2019-02-26 · TA获得超过2992个赞
知道小有建树答主
回答量:516
采纳率:81%
帮助的人:114万
展开全部

你好,我猜你的问题是为什么for循环的判断条件是s[0]!=0,而字符串中第一个元素是0,不满足条件 为什么能进入循环体吧~

是这样的,数字和字符对于计算机来讲是不一样的。数字0,并不等于字符'0',碰到字符串问题,首先想到的应该是ASCII表,如下

我们可以看见字符'0'对应的数字是48

而'\0'对应的数字是0

所以最后跳出了循环体

所以最后答案是3

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2019-02-26 · TA获得超过287个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:59.1万
展开全部
我也觉得是 还去写了一遍 运行确实是3
然后!我发现问题了 s[0]是字符0 而for里面判断他是不是数字0 字符0asc码是48 当然不等于0了 我也懵了好久 这题好厉害
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
u无力哀叹丶
2019-02-26 · TA获得超过520个赞
知道小有建树答主
回答量:696
采纳率:64%
帮助的人:337万
展开全部
s[0] = '0'
要分清'0' 和0的区别
'0'是一个char类型的字符常量 ASCII码为48
0为int类型的常量 ASCII码为0的字符为'\0'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式