C++ 解释出这个代码?

C++ 解释出这个代码?,c++,fibonacci,C++,Fibonacci,我是编程新手。我找不出输出不稳定的原因 0112385813213455 它不应该是011357等吗 首先,i=0so打印0(因为返回0),第二i=1so打印1(因为返回1),第三i=2so打印1因为(2-1)+(2-2)=1,第四i=3所以打印3因为(3-1)+(3-2)=3等等 请原谅我这个非常基本的问题。也许编程不适合我 #include <stdio.h> #include <stdlib.h> #define MAX 10 int i=

我是编程新手。我找不出输出不稳定的原因
0112385813213455

它不应该是
011357
等吗

首先,
i=0
so打印
0(因为返回0)
,第二
i=1
so打印
1(因为返回1)
,第三
i=2
so打印
1因为(2-1)+(2-2)=1
,第四
i=3
所以打印
3因为(3-1)+(3-2)=3
等等

请原谅我这个非常基本的问题。也许编程不适合我

#include <stdio.h>
    #include <stdlib.h>
    #define MAX 10

    int i=12345;
    double y=1.23456;

    void display_variables()
    {
      double y=4.352;
      printf("i=%d, y=%f\n", i,y);
    }

    int main()
    {
        printf("i=%d, y=%f\n", i,y);
        display_variables();
        int c,i=0;  
        for (c = 0; c <= MAX; c++)
            {
                printf("%d\n", fib(i));
            i++;
            }
        return 0;
        } 

    int fib(int n)
    {
       if ( n == 0 )
          return 0;
       else if ( n == 1 )
          return 1;
       else
          return ( fib(n-1) + fib(n-2) );
    } 
#包括
#包括
#定义最大值10
int i=12345;
双y=1.23456;
void display_变量()
{
双y=4.352;
printf(“i=%d,y=%f\n”,i,y);
}
int main()
{
printf(“i=%d,y=%f\n”,i,y);
显示变量();
int c,i=0;
对于(c=0;c显然

fib(0) = 0,
fib(1) = 1,
fib(2) = fib(1) + fib(0)  = 1,
fib(3) = fib(2) + fib(1)
       = fib(1) + fib(0) + fib(1)
       = 1 + 0 + 1
       = 2
etc...

每个人都会犯错误,尤其是开始新的工作时,你需要耐心,你会发现自己的兴趣,但这不是
(3-1)+(3-2)
是吗?!这是
fib(3-1)+fib(3-2)<代码> >不要绝望,编程是有趣的!C++也不是最容易的语言!好学习!谢谢!!我明白它是怎么走的!!所以你可以回溯并使用最后一个等式的结果来把它插入下一个方程中: