Shimmer666 发表于 2022-6-9 22:36

用C语言求斐波拉数


请设计一个函数int Fi(int n),利用递归计算第n个斐波那契数,并在main函数中①输入一个整数;②调用函数Fi计算第n个斐波那契数;③打印输出结果。
输入输出效果参考如下格式:
10<回车>
第10个Fibonacci数是55



这是我写的:
#include <stdio.h>
#include <stdlib.h>

int Fi(int a){

               if (a==1 || a==2)

                     return 1;

               else

                     return Fi(a-1) + Fi(a-2);

}

int main(){
            int a;int b;

            printf("请输入一个整数:");

            scanf("%d",&a);

            b = Fi(a);

            printf("第10个Fibonacci数是%d\n",b);

            return 0;

}



问题就是在输入10的时候成功了 格式都正确 但是输入5或者其他数字时 仍然显示第10个数是...不知道是什么原因


我的问题是    应该有两个%d,以及它们对应的两个变量。大一新生 可我没有做到 求助大佬!!!!!

涛之雨 发表于 2022-6-10 06:44

printf("第%d个Fibonacci数是%d\n",a,b);
这样?

HC老杨 发表于 2022-6-10 07:13

楼上说的对。

豪猪12138 发表于 2022-6-10 07:15

经典的a,b变量名

wuai习 发表于 2022-6-10 08:52

printf("第10个Fibonacci数是%d\n",b);
这一句,printf中直接指定了输出第10个,你仔细看看。

ZXL88888888 发表于 2022-6-10 09:10

printf("第%d个Fibonacci数是%d\n",a,b);

Shimmer666 发表于 2022-6-10 09:43

(已经解决 谢谢 非常感谢)

yuyi0 发表于 2022-6-10 09:48

printf("第10个Fibonacci数是%d\n",b);改成printf("第%d个Fibonacci数是%d\n",b);

xiaomm250 发表于 2022-6-10 09:53

编程其实是最简单的!
你不知道为什么错,那你就把每行都下一个断点,然后一步一步跟踪程序,
这么个简单程序,我就不相信你看不出来错误原因!!!!

EgoYau 发表于 2022-6-10 10:16

挺难的,学习
页: [1] 2
查看完整版本: 用C语言求斐波拉数