【发布时间】:2018-06-21 06:48:25
【问题描述】:
我正在尝试编写一个程序,它将斐波那契数列的前 2 个数字以及 n 的值作为输入。然后程序给出斐波那契数列第n位的输出。
#include <stdio.h>
#include <stdlib.h>
int main () {
int n, i;
int s[n - 1];
int a, b;
printf("Enter two first two numbers:");
scanf("%d %d", &a, &b);
printf("Enter the value of n(3-100):");
scanf("%d", &n);
for (i = 2; i <= n - 1; i++) {
s[i] = s[i - 1] + s[i - 2];
}
printf("The nth digit is %d", s[n - 1]);
return(0);
}
我得到的是答案编号,后面跟着一些额外的任意数字
【问题讨论】:
-
您在知道
n的值之前尝试分配s。 (但请注意,该数组是完全没有必要的。) -
您还有一个
off by 1错误。int s[n-1];数组包含以0开头的n-1元素,因此最后一个有效索引是n-2。