gpt4 book ai didi

c++ - 寻找素数 : error: control reaches end of non-void function

转载 作者:行者123 更新时间:2023-11-30 03:13:13 24 4
gpt4 key购买 nike

我正在编码以查找质数并使用以下代码将结果提取为 boolean 值(真/假或 1/0)。

#include <iostream>
using namespace std;

bool isPrimeNumber(int n) {
int m, i;
m = n / 2;
for (i = 2; i < m; i++) {
if (n % i == 0) {
return true;
} else {
return false;
}
}
}
int main() {
cout << isPrimeNumber(33);
return 0;
}

(这里的结果应该是0,因为67是质数)

(我跳过了负数和 0,1,但我稍后会添加它)

然后在第 9 行,它说“错误:控制到达非空函数的末尾。”

我试图在 Internet 上找到解决方案,当然还有 StackOverflow。但我的代码仍然正确且可构建。

我认为这与将警告视为错误有关(我作为初学者在推荐下更改了它)。但我不想改回去,因为我还在学习。

你有没有办法在不将我的设置恢复正​​常的情况下解决这个问题?

最佳答案

当 n 为奇数时,您会得到错误:

error: control reaches end of non-void function.

您正在检查 n 是否仅被一个值 i=2 整除。您必须检查 i 从 2 到 m 的每个值。

for循环迭代完成后返回false
如下更改您的 isPrimeNumber() 函数:-

bool isPrimeNumber(int n){
int m,i;
m = n/2;
for (i=2;i<m;i++){
if (n % i == 0){
return true;
}
}
return false;
}

关于c++ - 寻找素数 : error: control reaches end of non-void function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58911688/

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