我正在尝试在c中写一个递归斐波那契()
我有
#include <stdio.h>
int fibonacci(int);
int main(int argc, char *argv[]){
int option;
printf("1- Calculate Fibonacci\n");
printf("2- Exit\n");
scanf("%d", &option);
if(option == 1){
int limit;
printf("Enter and integer: ");
scanf("%d", &limit);
printf("The Fibonacci sequence is : \n");
fibonacci(limit);
}else if(option == 2){
return 0;
}else{
printf("Please select your option : 1 or 2.\n");
}
return 0;
}
int fibonacci(int n){
if ( n == 0 )
return 0;
else if ( n == 1 )
return 1;
else
return ( fibonacci(n-1) + fibonacci(n-2) );
}
编译完成后,运行
./a.out
1- Calculate Fibonacci
2- Exit
1
Enter and integer: 5
The Fibonacci sequence is :
我从未打印过我的号码。
我忘了什么提示?
答案 0 :(得分:3)
fibonacci(limit);
即使您的代码理论上“有效”,也不会打印任何内容。
答案 1 :(得分:3)
替换:
printf("The Fibonacci sequence is : \n");
fibonacci(limit);
与
printf("The Fibonacci sequence is : %d \n",fibonacci(limit));
或
int result;
result = fibonacci(limit);
printf("The Fibonacci sequence is : %d \n",result);
答案 2 :(得分:2)
您不会在fibonacci(int)方法中打印任何内容。
答案 3 :(得分:0)
fibonacci(limit);
此行不打印任何内容,您在某些变量中返回某些结果的答案或仅通过printf("%d", fibonacci(limit));