艾草加花椒治疗妇科病:帮帮我说一下有关c语言中的这个东西吧

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 04:18:39
#include <stdio.h>
main()
{
int i,j,x=0;
for(i=0;i<=3;i++)
{
x++;
for(j=o;j<=3;j++)
{
if(j%2)
continue;
x++;
}}
printf("x=%d\n",x);
}

为什么答案X=8??
这个程序我看不懂??是什么意思啊
我在习题本里面看到的。我不知道 程序说的是什么

这是一个嵌套循环,可是答案不应该是X=8吧,好像应该是X=12,你在什么编译器里运行结果等于8呀?我用VC6.0得到结果是12!
运行过程如下:
1、i=0,满足i<=3,执行X++,此时X=1了,然后继续运行第二个循环,此时j=0,满足j<=3,执行if(j%2),这一句的意思是取j除于2的余数,如果默认等于1的话,继续执行X++,否则跳回j循环,比如当j=0时,j%2=0,就不执行X++,此时X=1,然后j=1,此时j%2=1,则X++,也就是说X=2了,然后j=2,j%2=0,不满足,j=3,j%2=1,符合,则X++,也就是说X=3了,然后j=4,此时已经不满足j<=3的条件了,这一轮循环结束。
2、i=1,同样分析过程,最后X=6。
3、i=2,同样分析过程,最后X=9。
4、i=3,同样分析过程,最后X=12。

你到VC6.0中运行一下,结果应该是X=12。如果我回答正确的话!希望选我作为最佳答案,谢谢!

if(j%2)
continue;
当j除2有余数时,跳过后面的语句进行下一个循环
当j=0和2时,x++才会执行
i循环共有4次,j循环每次执行2个x++
所以x=4+4*2=12
答案应该等于12