斐波那契数列的分割错误

时间:2018-08-26 17:06:51

标签: c

#include <stdio.h>    
int main()
{
    int n, i;
    scanf("%d", n);
    int a[n];
    a[0] = 0;
    a[1] = 1;
    for (i = 2; i < n; i++)
        a[i] = a[i - 1] + a[i - 2];
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);

    return 0;
}

实际上,在这个简单的斐波那契数列问题中,我遇到了细分错误。那么,对此有什么补救办法

1 个答案:

答案 0 :(得分:1)

替换

scanf("%d",n);

使用

scanf("%d",&n);

C中,scan时,您必须提供变量的地址。在C中,变量的地址由&运算符获得。

修改后的代码:-

#include <stdio.h>
int main()
{
    int n, i;
    scanf("%d",&n);
    int a[n];
    a[0] = 0;
    a[1] = 1;
    for (i = 2; i < n; i++)
        a[i] = a[i - 1] + a[i - 2];
    for (i = 0; i < n; i++)
        printf("%d ", a[i]);

    return 0;
}

输出:-

5
0 1 1 2 3