【发布时间】:2016-12-26 22:54:58
【问题描述】:
我是 C++ 的初学者,我正在尝试使用递归编写阶乘。
但是,不知何故,return 不起作用。这是我的代码:
#include <iostream>
using namespace std;
int factorial(int num) {
if(num == 1) {
return 1;
}
return num * factorial(num - 1);
}
int main() {
int num;
cout << "Please enter a number and I will do its factorial : ";
cin >> num;
factorial(num);
}
谁能告诉我为什么return 不起作用?
顺便说一句,我在 mac 上使用 sublime。
【问题讨论】:
-
“行不通”是什么意思?编译失败了吗?它会崩溃吗?它会返回一个意外的值吗?
-
不起作用是什么意思?请注意,在
main中,您不会对来自factorial的返回值做任何事情。 -
返回不会显示在终端上。
-
@Ian 我没有投反对票,但为了将来参考,请尝试在问题中包含“退货不会显示在终端上”部分。 “它不起作用”对于一个完整的问题来说信息不足
-
@KABoissonneault
main会得到一个隐含的return 0;如果它被忽略。