c语言中求100到200间素数(改错)
发布网友
发布时间:2024-04-03 04:46
我来回答
共3个回答
热心网友
时间:2024-08-17 03:12
不要用goto语句~~~~
热心网友
时间:2024-08-17 03:11
if(i%j==0) goto a;
for循环还没执行完,你就又goto到for循环的这一句,等于已知一个数是合数,你还在判断它是否能被分解,答案是肯定的,所以就死循环了。
刚开始的时候最好不要随便用goto语句,更不要和for,while等一起用。
热心网友
时间:2024-08-17 03:07
问题出在
if(i%j==0)
goto a;
发现是合数,将跳到:a继续执行,此时i重新被初始化为101,一直如此...
else
continue;
此句纯属多余.
如果非要到goto,可以修改:
main()
{ int i=99,j; //i初始化为99
a:
for(i+=2;i<200;i+=2) //语句一为i+=2,这样在下面的goto回来时,i的值加2,跳过了当前的数
{for(j=3;j<i;j++)
{if(i%j==0)
goto a;
}
printf("%5d",i);};
}