怎么改啊
追答将a数组定义成long,x和j仍为int
追问我改了
一些数字输入后出现正确的结果,但有些数输入后显示为0
但如果按照顺序输,这些数又显示正确的了
追答什么意思?什么顺序
追问我输入大一点的数为什么会出来负数?
追答你的数组只有0-100的元素啊,你要输入多大啊
除非将数组元素定义大些
有负数出现啊
追答因为你定义的是int,范围太小了造成溢出,所以有负数出现
main()
{
double a[101] = { 1, 1 };
int i, x;
for (i = 2; i <= 100; i++)
a[i] = a[i - 1] + a[i - 2];
while (1)
{
scanf("%ld", &x);
printf("%lg\n", a[x]);
}
}
这样就行了
本回答被提问者采纳