从键盘上输入一个自然数,输出大于这个数的第4个素数。为什么无结果?是死循环吗?

原问题:从键盘上输入一个自然数,输出大于这个数的第4个素数。为什么无结果?是死循环吗?
分类:编程开发 > 最后更新时间:【2017-01-03 22:54:54】
问题补充:

#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  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    3

    分享到:

    其他回答

    暂无其它回答!

      推荐