【发布时间】:2020-04-08 08:45:57
【问题描述】:
我是第一次来这里发帖。就像标题说的我需要通过递归函数打印所有奇数。问题是我创建了一个简单的程序来执行此操作,但是当它达到 1(应该是程序停止的点)时,程序崩溃了,老实说,我看不出问题出在哪里。我的教授说我忘记在某个地方放一个回报,但老实说我不知道在哪里。因此,如果有人能指出问题,那就太好了(ps。我使用 Code::Blocks 作为我的 IDE)。
int main() {
int a, b;
printf("Unesi neki broj: \n");
scanf("%d", &a);
b = koko(a);
printf(b);
}
int koko(int a) {
if (a == 1) {
return a;
}
if (a % 2 != 0) {
printf("Ovaj broj je neparan: %d \n", a);
}
koko(a - 1);
}
【问题讨论】:
-
阅读编译器警告。他们会告诉你出了什么问题。提示:主函数的最后一行。
-
也用
-Wall -Wextra编译。他们会告诉你递归出了什么问题。 -
koko应该返回什么,例如值a = 15?它应该总是返回 1 吗? -
另外,由于您是 SO 新手,您可能需要阅读 How to Ask 并选择 tour。
标签: c