凊(◦˙▽˙◦) 2022-03-10 14:39 采纳率: 91.7%
浏览 51
已结题

我输入100,出来的素数个数是26。不应该是25吗?

编写函数int fun (int lim, int aa[MAX] ),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回所求出素数的个数。然后编写主函数调用它。


#include<stdio.h>
int fun(int lim, int aa[])
{
    int i, j = 0, s = 2, n = 0;
    for (i = 3; i <= lim; i++)
    {
        for (j = 2; j <= i; j++)
        {
            if (i % j == 0)break;

        }
        if (j > i - 1)
        {
            s++;
            aa[n] = i;

        }
    }
    return s;
}
int main()
{
    int aa[100], lim, s;
    scanf_s("%d", &lim);
    s = fun(lim, aa);
    printf("%d", s);
    return 0;
}
  • 写回答

4条回答 默认 最新

  • 关注

    我能理解你想偷懒所以把2当做默认的素数,不过s初始化要为1
    s=1
    后面n每次要加1
    aa[n++]=i;

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

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 创建了问题 3月10日

悬赏问题

  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面