我目前是编程学习的初学者,我的教授指示我按照下面的说明做一个程序。但是,当我编写我的程序时,我做了以下操作,以便从用户那里获取数组应该有多长时间,但是因为我的数组大小没有定义它给了我一个错误,但教授没有指示我指定一个大小所以我真的很困惑: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的输出。如果在此步骤中出现任何问题,则无需修复此问题。只需添加评论,解释发生了什么,以及原因。
答案 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的斐波纳契数。