main() {int i; for(i=1;i<=40;i++) if(i++%5==0) if(++i%8==0) printf("%d",i) }

求各位看看它的最后答案是多少,麻烦回答一下,为什么最终答案为32???

你好!!!
首先会循环40次:从i=1到i=40,当i=1;的时候,先执行if(i++%5==0),其中i++表示先是用i当前的值,然后在加一,即if(i++%5==0)等价于if(i%5==0),i++;显然i=1,不成立(此时i已经等于2了)那么就执行下次循环,此时的i=3了,还是、、、、

最后当i=30的时候,if(i++%5==0)满足条件,此时的i=31.然后if(++i%8==0)其中是++i,是先把i加一,即此时I=32,然后在判断if(i%8==0)显然也成立,那么就输出32哈、、、后面也是如此!!

不理解的我们在联系!!!
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-23
main() {int i; for(i=1;i<=40;i++) if(i++%5==0) if(++i%8==0) printf("%d",i) }
求各位看看它的最后答案是多少,麻烦回答一下,为什么最终答案为32???按步骤列公式就是得出这个数值。
第2个回答  2010-09-05
当i=30的时候,正好满足i++%5==0,运行后i=31,31加上1后(++i),然后执行++i%8==0这句,所以i=32
第3个回答  2010-09-05
因为两个if语句中的i相差了2,30被5整除且32被8整除,当然结果是32了.
第4个回答  2019-12-06
爱你爱你爱你爱你爱你爱你

main() {int i; for(i=1;i<=40;i++) if(i++%5==0) if(++i%8==0) pr...
你好!!!首先会循环40次:从i=1到i=40,当i=1;的时候,先执行if(i++%5==0),其中i++表示先是用i当前的值,然后在加一,即if(i++%5==0)等价于if(i%5==0),i++;显然i=1,不成立(此时i已经等于2了)那么就执行下次循环,此时的i=3了,还是、、、最后当i=30的时候,if(i++...

main() {int i; for(i=1;i<=40;i++) if(i++%5==0) if(++i%8==0) pr...
而后面那个就翻译成两句话:i=i+1(运算);i%8==0(判断条件)。根据先后顺序,两个判断条件如果合到一起就变成{i%5==0;i=i+1;i=i+1;i%8==0},从左到右依次再合并变成三句话,{i%5==0;i=i+2;i%8==0;}再进一步合并就成了两个判断条件{i%5==0,(i=i+2)%8==0...

#include<stdio.h> main(){int i;for (i=1;i<5;i++)
首先i=1,i%2=1,执行printf(" * "),然后执行printf("#");,进入下一个循环;其次i=2,i%2=0,执行else continue,直接进入下一个循环;再次i=3,i%2=1,执行printf(" * "),然后执行printf("#");,进入下一个循环;第四i=4,i%2=0,执行else continue,直接进入下一个循环;第...

for (i=1;i<=5;) printf("%d",i);i++;答案是啥
答案是死循环,因为对于for语句来说,有效循环体只有一个语句,如果循环体超过一个语句,需要用花括号包起来。

...main (){ int i; for (i=1;i++<=5; ); printf("%d",i); }i等于多...
i等于7。循环6次。i= 2 i++ = 1 i =:3 i++= 2i =4 i++ =3i = 5 i++= 4i = 6 i++= 5i = 7 i++= 6

、main( ){ int i; for(i=0;i<5;i++) {printf(“%d”,++i);
循环会i加到5,i值 ++i i++ 循环 1(输出1) 2 (输出1) 3 4 (输出4) 5 (输出4) over 所以结果为:1144

...main() { int i; for(i=0;i<5;++i) { if(i==3) { printf("%_百度知 ...
135 ~~~

main(){inti;for(i=1;i<=5;i++){if(i%2)printf("*");elescontinue;printf...
eles应为else ,结果为:“ *#*#*#$ ”然后换行。

...int main() { int i; for(i=1;i++<4;); printf("%d\\n",i); }...
i++<4,是在进行判断后,再进行自加,当i=3时成立,此时i自加1,结束,再循环,当i=4时,不成立,当i还是要进行一次自加,所以答案是5

c语言:main(){inti;for(i=1;i<=5;i++){if(i%2)printf("
continue语句肯定是开始下一次循环的,显示#是因为 if 语句条件满足后,输出*,然后跳出if语句块到printf("#"),输出了#。要想不输出#,可以在printf(*)后加上continue;if(i%2){ printf("*"); continue;}else continue;printf("#")...

相似回答