有人可以帮我理解为什么这段代码工作不正常吗?我知道它非常接近,我认为我只是忽略了一些东西。任何帮助表示赞赏。这是我到目前为止:C++析因函数不起作用
#include <iostream>
#define TEST_ARRAY_SIZE 4
long int factorial(int num);
long int factorial(int num){
for(unsigned int i = 1; i <= num; i++) {
num *= i;
}
return num;
}
int main() {
int test[TEST_ARRAY_SIZE] = {1, 2, 5, 7};
for (unsigned int i = 0; i < TEST_ARRAY_SIZE; i++) {
std::cout << "Factorial of " << test[i] << " is " << factorial(test[i]) << std::endl;
}
return 0;
}
您可能会尝试将'return'移到循环外。修复缩进将有助于使这一点更加明显。但是这也会使你的循环无限,因为你正在修改你用作循环终止的变量。 –