#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;
}
实际上,在这个简单的斐波那契数列问题中,我遇到了细分错误。那么,对此有什么补救办法
答案 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