凊(◦˙▽˙◦) 2022-03-10 06:39 采纳率: 88%
浏览 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月18日
  • 已采纳回答 3月11日
  • 创建了问题 3月10日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部