从键盘上输入一个自然数,输出大于这个数的第4个素数。为什么无结果?是死循环吗?
问题补充:
#include<stdio.h>
int main()
{
int n,i;
int flag=0,s=0;
scanf("%d",&n);
while(n++)
{
for(i=2;i<n;i++)
{
if(n%i==0)
{
flag=1;
}
if(flag==0)
{
s++;
if(s==4)
{
printf("%d\n",i);
break;
}
}
}
}
return 0;
}
最佳答案
你的循环及判断有问题,改好的
while(n++)
{
flag = 0;
for(i = 2; i < n; i++)
{
if(n % i == 0)
{
flag = 1;
break;
}
}
if(flag == 0)
{
s++;
printf("%d\n", i);
if(s == 4)
{
break;
}
}
}
追问:
我那个是因为flag的位置不对吗?
你自己比较下1.flag没有在循环内清02.循环内容{}不对,且要加break;我上面的输出写错位置了,以为要输出4个,你原来的位置是对的
最佳答案由网友 whoami1978 提供
其他回答
暂无其它回答!