2 atn2129 Atn2129 于 2016.01.31 22:02 提问

为什么这两个,在for里可以,在外面的不可以???求解答

图片图片

4个回答

u011335493
u011335493   2016.01.31 22:46
已采纳

你求素数的思路是:(100~200)中只要不能被(2~所计算数的一半(n/2))整除就认为该计算数不是素数,并将“j”赋值为1。
①左边程序中,在第一层For循环中,第一个数是100,不是素数,就会将“j”赋值为1,由于在第一层FOR循环中没有给“j”初始化为0语句,
这样在后面语句中既是有素数出现,j的值始终都是1.
②右边程序,在第一层For循环中,加了个j=0的初始值赋值,这样会每次对n值判定,都会被认识是素数开始,知道n%i=0时,判定为非素数。

caozhy
caozhy   Ds   Rxr 2016.01.31 22:14

因为每次判断,都需要把j重新设置为0。否则后面遇到素数也会因为上一个数字是合数将j设置为1没有恢复而也被判断为和数。

lrgdongnan
lrgdongnan   2016.01.31 22:22

放里面放外面都可以,只不过你上面一个程序中,每次外循环时j没有初始化为0。

fk002008
fk002008   2016.01.31 22:24

编程中使用了 标志flag之类的东西做为结果得出的依据时候,
要注意这个flag要不要进行 reset

在哪里设置了它打开/关闭,那么就要想到还要对他进行 关闭/打开

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!