Finding Prime Number: error: control reaches end of non-void function
Finding Prime Number: error: control reaches end of non-void function
我正在编码以查找质数并使用以下代码将结果提取为布尔值(true/false 或 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;
}
(67是素数,结果应该是0)
(我跳过了负数和 0,1,但我稍后会添加)
然后第9行说"error: control reaches end of non-void function."
我试图在互联网上找到解决方案,当然还有 Whosebug。但我的代码仍然正确且可构建。
我认为这与将警告视为错误有关(我作为初学者在推荐下更改了它)。但我不想改回去,因为我还在学习。
你有没有办法在不将我的设置恢复正常的情况下解决这个问题?
当 n 为奇数时出现错误:
error: control reaches end of non-void function.
您正在检查 n 是否仅被一个值 i=2 整除。您必须检查 i 从 2 到 m 的每个值。
Return falsefor循环迭代完成后
如下更改 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;
}
我正在编码以查找质数并使用以下代码将结果提取为布尔值(true/false 或 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;
}
(67是素数,结果应该是0)
(我跳过了负数和 0,1,但我稍后会添加)
然后第9行说"error: control reaches end of non-void function."
我试图在互联网上找到解决方案,当然还有 Whosebug。但我的代码仍然正确且可构建。
我认为这与将警告视为错误有关(我作为初学者在推荐下更改了它)。但我不想改回去,因为我还在学习。
你有没有办法在不将我的设置恢复正常的情况下解决这个问题?
当 n 为奇数时出现错误:
error: control reaches end of non-void function.
您正在检查 n 是否仅被一个值 i=2 整除。您必须检查 i 从 2 到 m 的每个值。
Return falsefor循环迭代完成后
如下更改 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;
}