永发信息网

for(k=0;k<5;k++)printf("%d",a[k]);

答案:4  悬赏:60  手机版
解决时间 2021-03-18 06:01
for(k=0;k<5;k++)printf("%d",a[k]);
最佳答案
你好,原因是程序里循环了两次。在fun函数里用do while实现了a[0] a[1]元素的叠加。for(k=1;k<3;k++)又循环了一次,
所以for(k=1;k<3;k++)fun(a);就不需要了。改成fun(a);就好了。追问这是书中的题目,为何答案是35745追答额,。。。。居然被推荐鸟。。。仔细看了下,确实答案是35745
重点在于static int j上,j是静态变量,fun函数中调用导致j值的变化被保存,并影响下一次运行。
现在分析一下:for(k=1;k<3;k++)fun(a);
k = 1时,调用fun(a);
第一次循环:j等于0,a[0] = a[0] + a[1]; a值变为32345;
第二次循环,j等于1,a[1] = a[1] + a[2]; a值变为35345
然后++j,j等于2,++j<2不成立,退出循环,退出fun函数

k = 2,调用fun(a);
第一次循环;因为j保存了上次运行的值,j = 2; do while结构先循环。
a[2] = a[2] + a[3]; a值变为35745
然后++j = 3,,++j<2不成立,退出循环,退出fun函数

k = 3, for循环退出。

所以最后a值变为35745
全部回答
v刹
请说明此段代码要做什么?追问这是书中的题目,为何答案是35745
第一次循环结果:35345
第二次循环结果:35745
解释:看清static int j=0说明t循环第一次后保留值为t=2,由于是do while 因此要执行一次s[j]+=s[j+1];也就是s[2]+=s[3],得结果如上
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我老婆不愿意我经常回家找她,因为我回家也不
生态野生菌石锅鱼铜锅鱼怎么去啊,有知道地址
马自达6的发动机是创制蓝天技术吗
南浔德奥电梯部件这个地址在什么地方,我要处
身份证银行卡放在家里安全不
松抚大街/枫桦路(路口)地址在哪,我要去那里
感觉眼睛里有东西 可是照镜子什么都没有 一眨
纯棉裤子缩水了怎么办?有什么好方法让它变长
生产有祛皱效果的面部美容按摩器材是否需要注
深圳会展中心的招聘信息从哪里可以看到,比如
那一次我错了
皇明太阳能热水器水用完后不会自动进水吗
x-6的差比24分之17=3分之一比八分之一
横井超市地址在哪,我要去那里办事
一个男人每天给你发三个吻是什么意思呢
推荐资讯
古今地址在什么地方,想过去办事
摩尔庄园演话剧找演员 演《妈妈的唠叨》加了q
英文“rest是什么意思意思”
柳州有好的古筝老师吗?
我是机床售后服务的,急求售后部门激励的口号
安阳新区医院-急诊地址在什么地方,想过去办
想员工不同意调岗,就只能让员工待岗吗
新城街道办事处开发区社区卫生服务站这个地址
一个加数增加87,另一个加数减少87,和是多少
最后日向宁次最后是不是死了,我看日向雏田带
建行卡里莫名其妙少了10元,也没有短信提醒,
小红山酒家在什么地方啊,我要过去处理事情
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?