【发布时间】:2018-04-02 00:27:35
【问题描述】:
我正在编写一个 C 程序来获取斐波那契数,用户需要输入前 2 个数,并且序列从那里开始。这是我的代码:
#include <stdio.h>
#define MAX_SIZE 100
int main()
{
int i, input[MAX_SIZE];
printf("please Enter first 2 digit of the Sequence\n");
scanf("%d, %d" , &input[0], &input[1]);
for (i = 2; i < MAX_SIZE; i++)
{
input[i] = input[i-2] + input[i-1];
printf("%d\n", input[i]);
}
return 0;
}
但是,当我使用输入 2 和 3 运行代码时,我会得到类似 1499141456 的输出,这显然不是顺序。请帮忙。
【问题讨论】:
-
现在好点了吗?我不明白你删除逗号的意思,我从用户那里得到了 2 个输入。
-
检查
scanf的返回值。如果它不是 2,那么它没有读取两个数字,并且它没有读取的那些是未定义的(并且可以是任何东西)。您的scanf格式为%d, %d,这意味着它需要在两个数字之间使用逗号。如果提示时不输入逗号,则不会解析第二个数字。