Fibonacci系列使用数组(只要用户输入)

时间:2015-10-21 21:41:38

标签: arrays function for-loop

我目前是编程学习的初学者,我的教授指示我按照下面的说明做一个程序。但是,当我编写我的程序时,我做了以下操作,以便从用户那里获取数组应该有多长时间,但是因为我的数组大小没有定义它给了我一个错误,但教授没有指示我指定一个大小所以我真的很困惑:S

我的尝试:

void displayarray(int n){

int i;
int aray[]={0,1};

for (i=0;i<n;i++){
    printf("%i", aray[i]);
}
printf("\n");

}

int main() {int n;

scanf("%i",&n);

displayarray(n);

getchar();
getchar();

}

指定的任务:

  

Fibonacci数字是一个着名的数字序列。它们以0和1开头,然后序列中的下一个值是前两个值的总和。

     

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765   (fib [8]是21 - 记得从0开始计数!)

     

编写一个计算Fibonacci序列的程序。

     

- 创建一个接受n的函数,这是要生成的整数。

     

-Declare一个数组,只用前两个Fibonacci数字初始化它,然后计算其余的数据。

     

- 显示n = 10和n = 20的序列。

     

- 尝试生成n = 50的输出。如果在此步骤中出现任何问题,则无需修复此问题。只需添加评论,解释发生了什么,以及原因。

2 个答案:

答案 0 :(得分:0)

您可以使用&#34; malloc()&#34;或&#34; calloc()&#34;函数来分配给定大小的数组。

你需要声明它像

int *array;
array = malloc(n, sizeof(int));

// do something
free(array)

答案 1 :(得分:0)

您只需使用3长度数组即可计算所有Fibonacci序列。使用Fibonacci序列的两个第一个数字(0和1)初始化数组的前两个元素,然后使用这两个值计算序列的第三个数字。

 int f[3];

 f[0] = 0;
 f[1] = 1;
 f[2] = f[0] + f[1]

尝试弄清楚在for循环中要做什么来计算任何整数n的斐波纳契数。