【发布时间】:2021-06-10 20:06:50
【问题描述】:
我得到分段错误核心转储。我的函数应该返回传入参数之后的素数,或者如果它是素数则返回该数字。
当我编译时,我没有错误,我也用-Wall 编译,它工作。但是当我运行程序时,我得到了segmentation fault, core dumped。我看不到问题。
#include <stdio.h>
int ft_next_prime(int nb)
{
int i = 2;
int notPrime = 0;
while (i++ < 9 || notPrime != 1) {
if (nb == i)
i++;
else if (nb % i == 0)
notPrime = 1;
}
return ((notPrime) ? ft_next_prime(nb++) : nb);
}
int main()
{
printf("%d", ft_next_prime(15));
}
为什么?
另外,我可以写这个吗?
while (i++ < 9 || !notPrime)
if (nb % (i != nb) == 0)
notPrime = 1;
【问题讨论】:
标签: c recursion segmentation-fault primes core