两道很基础的C语言题 求求好心人帮忙给出答案和解析 5

求答案和解析详细一点很感谢!... 求答案和解析 详细一点 很感谢! 展开
 我来答
syht2000
高粉答主

2020-05-22 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
第一题,从题目看,main中输入了一个字符数组到item,并把这个item传给delnum处理,delnum中的那个循环,是逐个判断s[i]是否是小于'0'或者大于9,即判断s[i]是否非数字,如果非数字,则用s[j++]=s[i]来将内容保存,举个例子,比如输入a9,在delnum中,
第一次循环i=0,s[0]为'a',满足if的条件,所以s[0]='a',j自加1变为1,i自加1变为1

第二次循环i=1,s[1]为'9',不满足if,所以j还是1,i自加1变为2
从这个过程可以看出,缺的那个空,实际上是你填s数组的结束位置的,因为j实际上就已经是有效的字母的后一个位置,所以那个空直接填s[j]='\0';就行了。

第二题:for循环中,每一次开头length都被设置为0,while循环是用来判断p当前位置是否是空格或者.的,很明显,如果p当前位置不为空格或.,那当前的单词长度就应该加1,所以那个空就是length++;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式