163邮箱忘记密码找回:C语言的知识

来源:百度文库 编辑:高考问答 时间:2024/04/30 17:29:31
main()
{int i=0, sum=1;
do{sum+=i++;} while(i<5);
printf("%d\n",sum);
}
哪位高人把这个计算过程仔细的写一遍给我,答案是11,我就算是16呢,怎么也拐不过来,其中的i++在do里边是不是不进行增一呀?i++是不是在执行while语句的时候才增一使i的值为i+1呀?但是为什么呢??

第一步:i=0, sum=1,运行sum=sum+i=1 i=1
第二步:i=1, sum=1,运行sum=sum+i=2 i=2
第三步:i=2, sum=2,运行sum=sum+i=4 i=3
第四步:i=3, sum=4,运行sum=sum+i=7 i=4
第五步:i=4, sum=7,运行sum=sum+i=11 i=5
第六步i=5停止循环

i++是先运算后加减的
++i才是先加减,后运算

i++返回i原来的值,之后i增加1
do-while结构是每次先执行do里面的语句,然后判断while,如果依然成立,继续执行do里面的语句,一直到while里的条件失效

开始i=0 sum=1
第一次之后 sum=1+0=1 ;i=1,继续
第二次之后 sum=1+1=2 ;i=2,继续
第三次之后 sum=2+2=4 ;i=3,继续
第四次之后 sum=4+3=7 ;i=4,继续
第一次之后 sum=7+4=11 ;i=5,结束

有可能你没有理解 while() {} 和 do while的区别
while()是先判断条件是否符合
do while是后判断
也就是说,电脑在执行情况sum+=i++; I从4变到5后再判断,结果就为假了,所以5没有相加
结果就是11了
i++就是先取I原来的值,再把i加一

i++是先i进行+1后才进行其它操作,所以我的答案是16,和你一样哦,答案可能是错的了,呵呵

说白了i++、i--是先运算后加减,++i、--i是先加减后运算。

sum+=i++;相当于sum =i+sum;i++;