gpt4 book ai didi

c - 如何在 C 中为素数筛选算法设置可变长度数组?

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:16 25 4
gpt4 key购买 nike

我是 C 的新手,过去只真正接触过 Python,所以请原谅我的无知。

我正在尝试用 C 实现 Eratosthenes 的素数筛算法。该算法递归地丢弃给定数字的所有倍数,直到找到您希望知道的最后一个数字。具体来说,该程序将有一个输入 n,并将输出所有小于 n 的素数。

为了实现这一点,我想创建一个长度为 n 的数组并递归循环这个数组,丢弃我不再关心的整数(通过将它们更改为 0)。

然而,我发现的问题是 c 不允许可变长度的数组。我想我通过这个技巧稍微超越了这条规则:

void Sieve(int n) {
int prime[n+1];
}

但遗憾的是,即使是赋予函数的变量也不行。

因此我的问题是:如何在 C 中启动这样的数组?

最佳答案

您可以使用动态内存分配:

int* prime;
prime = malloc(sizeof(int)*n);

然后将其用作常规数组,例如素数[n-1]

关于c - 如何在 C 中为素数筛选算法设置可变长度数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52480251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com