C语言程序解读,如何得到的结果,最好详细点?

 我来答
自我编程
2020-12-29 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部

打印输出结果为:1115。

一、这里k循环条件是s[k],只要s[k]的值不为0,就一直循环。而s字符串最后一位隐藏位是0。

所以k循环的次数就是字符串s的长度8。

二、循环中的switch语句判断的是s[k]的值,也就是说比较了字符串的每一位。当k值为0,1,2,3时,s[k]为'1','2','3','4',对应i值为0,1,2,3,所以前4次循环分别执行了c[0]++,c[1]++,c[2]++,c[3]++,前4次循环后c数组的值为1111。

三、后4次循环,s[k]值为'5','6','7','8'。switch无对应case执行,因此后4次的i值都是3。

所以后4次循环执行了4次c[3]++。所以后4次循环后c数组的值为1115。

更多追问追答
追问
执行了c[0]++,c[1]++,c[2]++,c[3]++,是怎么得出值就为1111的?这是怎么算的我还是不太明白,后面执行了4次c[3]++,值为1115,这个C[i]++的值都是怎么算的?
追答
程序开始int c[0]={0};这句是把数组c所有元素都初值0。所以c每个元素开始都是0。上面那个初始化语句,数组给初值如没有对应数组个数,那么剩余元素取默认初值0。但是如一个初值都不给,就是随机数,后面++就不可控,所以必须给初值。
参观西湖
2020-12-30 · 古籍有很多,写出来一起欣赏。
参观西湖
采纳数:919 获赞数:2312

向TA提问 私信TA
展开全部
开始:c[4]={0,0,0,0}
for走1次:i=0,c[4]={1,0,0,0}
for走2次:i=1,c[4]={1,1,0,0},
for走3次:i=2,c[4]={1,1,1,0},
for走4次:i=3,c[4]={1,1,1,1},
for走5次:i=3,c[4]={1,1,1,2},
for走6次:i=3,c[4]={1,1,1,3},
for走7次:i=3,c[4]={1,1,1,4},
for走8次:i=3,c[4]={1,1,1,5},
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
microroom
科技发烧友

2020-12-28 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1611万
展开全部
当k等于0,1,2,3时,s[k]分别等于'1','2','3','4',对应于c[0],c[1],c[2],c[3],各执行一次自加,且i的值是3。

当k等于4,5,6,7时,s[k]分别等于'5','6','7','8',不会执行switch语句,但会执行c[3]++(此时i的值是3)。

所以,输出是:
1 1 1 5(最后也有一个空格)
追问
不好意思,还是没懂,我初学,能不能说的易懂点,还是不知道1115到底怎么得来的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式