C primer 第七章分支和跳转 习题7.9

输入一个正整数 显示所有小于它的素数

#include <stdio.h>
int main(void)
{
    printf("Enter an integer:\n");
    int enter,num,i;
    while (scanf("%d",&enter)==1)
    {
        for (i=2;i<=enter;i++)
        {
            int flag=1;
         for (num=2;num*num<=i;num++)
         {    
            if (i%num==0)
                flag=0;
         } 
         if (flag)
             printf("%d\n",i);
        }
        printf("Enter another integer:\n");
    }
    return 0;
}

 

PS:1.此程序必须加入flag标签,用以检查输入的数字是否进入循环(如果不加 则数字2 3 将无法进入循环 从而被遗漏)

2.加入标签后,以前的代码是在内侧循环中 如果1%num!=0 就输出为质数,但是产生的问题是无法将2 3输出,有了flag后,应该充分利用flag,在内循环外输出(就可以包含2 3 及其他5以上的质数)。

posted @ 2017-06-11 10:06  ryosukeli  阅读(125)  评论(0编辑  收藏  举报