| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1764 人关注过本帖
标题:输入一个整数n(2<=n<=200),求所有小于n的素数,要求采用筛选法
只看楼主 加入收藏
yeluo9
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
输入一个整数n(2<=n<=200),求所有小于n的素数,要求采用筛选法
#include"stdio.h"

void initarray(int b[],int n);
void shaixuan(int *b,int n);
void output(int *b,int n);
main()
{
    int a[201]={},n;
    scanf("%d",&n);
    initarray(a,n);  //每个数组单元格内容存放为其下标
    @#1                 //调用筛选函数
    output(a,n);   //输出结果   
}
void initarray(int b[],int n)
{
    @@1
        @@1
}
void shaixuan(int * b,int n)
{
    int i,j;
    //重点理解下面的循环控制
        //从第三个单元格开始(内容2),然后从该数的后面一个开始
        //逐个向后找该数的倍数,找到了设置为-1
    for(i=2;i<=n;i++)  
    {
       if (*(b+i)!=-1)  //如果是-1,则不用处理(已经删除的数据)   
       {
         @@2

                 @@2
        }
    }               
}

void output(int *b,int n)    //b指针指向的是a[2]单元格
{
    int *p;
    for(p=&b[2];p<&b[n];p++)  //注意理解循环为什么这没控制,
       @@3

           @@3
}
@#1和@@1,@@2,@@3是填空的部分,不会做,有大佬帮忙一下吗
搜索更多相关主题的帖子: 整数 小于 筛选 void int 
2019-05-31 13:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
不会,但我在网上看到一个跟你这算法一模一样的代码,不知道有没有借鉴意义
程序代码:
#include <stdio.h>

int main( void )
{
    _Bool mark[201] = { 1, 1 };
    for( size_t i=2; i!=sizeof(mark)/sizeof(*mark); ++i )
    {
        if( !mark[i] )
        {
            for( size_t j=2*i; j<sizeof(mark)/sizeof(*mark); j+=i )
                mark[j] = 1;
        }
    }
    for( size_t i=2; i!=sizeof(mark)/sizeof(*mark); ++i )
    {
        if( !mark[i] )
            printf( "%zu\t", i );
    }
}
输出
2       3       5       7       11      13      17      19      23      29
31      37      41      43      47      53      59      61      67      71
73      79      83      89      97      101     103     107     109     113
127     131     137     139     149     151     157     163     167     173
179     181     191     193     197     199     
2019-05-31 16:10
yeluo9
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2019-5-31
收藏
得分:0 
谢谢大佬
2019-05-31 16:57
快速回复:输入一个整数n(2<=n<=200),求所有小于n的素数,要求采用筛选法 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015359 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved