c语言中的for循环问题,求高手解答,谢谢啦

为什么这个输出是235711131719.能不能解释下过程,刚刚学这块,有点不懂,麻烦了... 为什么这个输出是2 3 5 7 11 13 17 19.能不能解释下过程,刚刚学这块,有点不懂,麻烦了 展开
 我来答
再盖一楼
2017-10-31 · TA获得超过114个赞
知道答主
回答量:26
采纳率:0%
帮助的人:14.8万
展开全部
#include <stdio.h>//头文件
#include <math.h>//math头文件,因为下面使用了sqrt函数,所以需要定义一下
int main()//主函数,每个程序都有一个主函数
{
int i,n;//定义i 和 n
for(i=2;i<=20;i++)//从i=2开始循环,当i>20的时候停止,每次循环后i加1
{
for(n=2;n<=(int)sqrt(i);n++)//从n=2开始循环,当n>i的平方后停止循环,每次循环n加1
if(i%n==0) break;//如果i除以n的余数是0,停止本次循环
if(n==(int)sqrt(i)+1)//如果n等于i的平方加1
printf("%d\n",i);//输出这个数i
//你的程序没有\n导致输出不能换行,我自己加了换行
}
return 0;
}
追问
很感谢您的回答,我想问,如果是进行break这一步时,i还会进行++这一操作吗。
如果不会,我自己手算,发现8应该是输出来的,请您指点一下。
还有,如果像 4 这类数,是直接break后就不进行其他操作了吗。
再次感谢您~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式