前20个Fibonnaci数和它们的总和使用函数

时间:2015-11-17 01:08:52

标签: c arrays function fibonacci

我被告知要制作2个函数,第一个函数void fibonnaci (&array[0],size)计算fib系列,第二个函数sum (int sum(&array[0],size))生成fib数的总和老实说我遇到了很多麻烦。 到目前为止,这是我的代码:

void fibonnaci (&fib_ptr[0], int size)
{
int Fibo [20]= {0,1};
int *fib_ptr= &fib[2], size;

for (size=2;size<20;++size)
{
    *fib_ptr= *(fib_ptr-1)+*(fib_ptr-2);
    fib_ptr++;
}
}
int sum (int sum(&array[0]), int size)
{
void fibonnaci (&fib_ptr[0], int size)

int sum=0, size;

for (size=0;size<20;++size)
    sum += *(fib_ptr-2);
}

int main ()
{
void fibonnaci (&fib_ptr[0], int size)
int sum (int sum(&array[0]), int size)

printf("The first 20 Fibonnaci numbers are : \n");
printf("%d \n", fibonnaci[size]);
printf("The sum of these numbers is : %d", sum[size] );


return 0;

我是一个迷失的灵魂哈哈,对于一般的编程来说相当新,老师没有任何帮助,提前感谢。

1 个答案:

答案 0 :(得分:0)

您的脚本中存在许多问题。首先,当你调用一个函数时,你不需要编写定义,因此行

void fibonnaci (&fib_ptr[0], int size)
void main()函数中的

必须替换为

fibonnaci (fib_ptr[0], size)

为什么你在这种情况下使用指针?,不是必需的;用一个简单的数组就足够了。接下来我给你写一个更简单的解决方案:

#include<stdio.h>

int main(){
  int a = 1;
  int b = 1;
  int n = 20;
  int c;
  int sum = a + b;

  printf("%d\n%d\n",a,b);


  for (int k = 0; k<n; k++){
    c = a + b;
    a = b;
    b = c;
    sum = sum + c;
    printf("%d\n",c);
  }

  printf("The final sum is: %d\n",sum);
  return 0;
}