c语言,sum=0,for(i=1;i<=5;++i),sum=sum+i。按理说先加再输出, 50

c语言,sum=0,for(i=1;i<=5;++i),sum=sum+i。按理说先加再输出,那结果应该是14啊,可是答案是15谁能告诉我我的想法错在了哪里... c语言,sum=0,for(i=1;i<=5;++i),sum=sum+i。按理说先加再输出,那结果应该是14啊,可是答案是15谁能告诉我我的想法错在了哪里 展开
 我来答
物理公司的
2017-10-05 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1330万
展开全部
for(i=1;i<=5;i++)
sum=sum+i; 详解:
---------------------------
这里分为四个部分:
第一个部分:i=1;
第二个部分:i<=5;
第三个部分:i++
第四个部分:sum=sum+i;
------------------------

1.首先for语句是保证下面的一个语句运行的,那就是sum=sum+i了。
2.整个这四部分是有一个执行的顺序的:1243243的执行顺序
先执行第一个部分、第二个部分
然后执行第四个部分,注意这里是第四个部分不是第三个部分

最后才执行第三个部分。
3.在整个for(i=1;i<=4;i++)的这个循环语句中,其中i=1;也就是第一部只是在程序开始的时候执行一次,后面的每次循环都不会再执行。
当第三部分最后执行完了以后就会继续执行第二部,判断是否成立,成立即执行,不成立即终止。
1243243243243243

------------------------------------------------------------
例如:
当i=1时即:
i=1;且i<5成立;则sum=0+1=1;然后将i的值+1,这个时候i的值就成为了2
当i=2时即:
i=2;且2<5成立;则sum=1+2=3;然后将i的值+1,这个时候i的值就成为了3
当i=3时即:
i=3;且3<5成立;则sum=3+3=6;然后将i的值+1,这个时候i的值就成为了4
当i=4时即:
i=4;且4<5成立;则sum=6+4=10;然后将i的值+1,这个时候i的值就成为了5
当i=5时即:
i=5;且5<=5成立;则sum=10+5=15;然后将i的值+1,这个时候i的值就成为了6
当i=6时即:

i=6;且6<=5不成立;则结束循环,执行最下面的printf语句。

-------------------------------------------------------
最后的结果就是sum=15
追问
我的亲哥,我的题目是++i,不是i++啊,如果按照那个思路++i的结果就是14了啊,这就是我不懂的地方
尘雨洛烟
2017-10-05 · TA获得超过6202个赞
知道大有可为答主
回答量:3967
采纳率:79%
帮助的人:985万
展开全部
没问题的,for循环的执行顺序是第一个分号前的i=1;然后判断是否为i<=5,然后执行循环体内的语句sum=sum+i;然后再执行++i操作,所以该语句完成从1到5相加的和
更多追问追答
追问
++i不应该是先i先加1然后再进行sum=sum+i这个操作吗?咱俩刚好说反了
怎么回事呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式