主题:我是一个新手,在C上有问题请帮忙解释一下.
sgktdwq
[专家分:0] 发布于 2006-11-11 09:39:00
请问下面这句程序的意思:
for(i=3,X%i && i<x;i+=2);
这一行里的X%i和i+=2,不是很明白是什么意思?
回复列表 (共14个回复)
11 楼
chengshiguyi [专家分:0] 发布于 2008-04-19 16:54:00
这个是对的
可这样理解1`
for(i=3,X%i && i<x;i+=2);
循环条件为:X%i!=0(即X对i取余后不等于0,X不是i的倍数时条件成立; 并且还要满足 i<x。当这两个条件满足时条件才为真,才执行循环体内的语句;每执行一次i自增2。
所有的语句没有错!~
12 楼
zhangyafei578661046 [专家分:0] 发布于 2008-08-10 19:21:00
也是一踩鸟,的确像这样的问题我想多些才好,真的学到了那么一点点知识。
几位大哥可不要看我们是新学的,连发帖的权限都不给了吧。书上确实找不到什么了,况且天天来论坛,就是为了在网上学到东西,要不就不上网了。
13 楼
skalong [专家分:0] 发布于 2008-08-11 22:42:00
如果X就是x的话,支持9楼的看法。
如果不懂的话,可以将X,x当成连个个具体的实数,比如X为10,x为8。
这样就变成了for(i=3,10%i && i<8;i+=2);
这样你就比较好理解了。
基础重在积累。相信一天也可以成为高手!
14 楼
purplemath [专家分:0] 发布于 2008-08-12 08:11:00
[quote]
我的见解如下:
1、这是个空循环。
2、“i = 3,” 应当改为“i = 3;”,表示此循环中,i的初值为3。
3、X%i && i <x; 表示循环的条件是X除以i的余数不为0,且i<x;
4、i += 2 意思是每执行依次循环后,i的值增加2。
“i += 2”等价于“i = i + 2”。
我也支持你,别因为有人小瞧我们就生气,没那个必要。
曼联教练弗格森告戒弟子们:“外界对我们的不公是对我们的嫉妒,我们要用更好的表现回击他们……”[/quote]
讲解的很好!补充一下,循环体的第二部分是逻辑表达式。只要值[b]非零[/b],比如说x=8,i=3时,结果是5除以3的余数等于2(不等于0),结果就判定为[b]真[/b],此时继续执行循环。直到i>x[b]或[/b]i整除x时退出循环。
我来回复