「已注销」 2021-11-10 10:46 采纳率: 56.7%
浏览 49
已结题

C++用埃拉托斯特尼筛选取法求1~200间素数 我的代码没输出 哭

img

  • 写回答

2条回答 默认 最新

  • 来把薯条 2021-11-10 11:10
    关注

    啊,这个错误很多呀,

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main(void)
    {
        int a[200];
        int m;
        int i, j;
        m = sqrt(200);
    
        // for (i = 1; i <= 200; i++)   错误,访问超下标了
        for (i = 1; i < 200; i++)
        {
            a[i] = i;
            a[1] = 0;   // 这儿倒是没错,建议挪到循环外面节约时间
        }
    
        for (i = 2; i <= m; i++)
        {
            // for (j = i + 1; j <= 200; i++)   // 这里是精髓,迭代条件是最大的错误,当然循环其它部分也不对
            for (j = i + i; j < 200; j += i)
            {
                // 这一块不知道题主是什么思路,迷了
                // if (a[j] % a[i] == 0)
                //     a[j] = 0;
                a[j] = 0;
            }
        }
        
        // for (i = 1; i <= 200; i++)   还是循环问题
        for (i = 1; i < 200; i++)
        {
            if (a[i] != 0)
                cout << "prime:" << a[i] << endl;
        }
    
        return 0;
    }
    

    img


    修改后部分运行截图

    个人写的0-999内质数罗列的代码,可以参考一下

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main(void)
    {
        int a[1000];
    
        // 初始化
        for (int i = 0; i < 1000; i++)
            a[i] = 1;
        a[0] = a[1] = 0;
    
        for (int i = 2; i < 1000; i++)
            for (int j = i + i; j < 1000; j += i)
                a[j] = 0;
        
        for (int i = 0; i < 1000; i++)
            if (a[i])
                cout << i << endl;
        return 0;
    }
    
    

    望采纳,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月10日
  • 已采纳回答 11月10日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答