新浪陕西汉中频道地址:这是一段求101--200之间所有素数的代码,请问哪里错了?(C语言)

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 05:10:32
main()
{
int i,j;
clrscr();
for(i=101;i<=200;i++)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
else
printf("%d ",i);
}
}

break 只能跳出第一个for,程序继续判断 i是不是质数
所以会出现很多质数

应该直接跳出第二个for

用goto
main()
{
int i,j;
clrscr();
for(i=101;i<=200;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)
goto OUT;

}

printf("%d ",i);

OUT:;
}
}

break结束了本次循环,就是说当循环遇到可以被2整除的数时,执行了语句break,循环结束。而不再进行下面的循环。

break跳出循环了吧

把break换成continue就行了.