我被告知要制作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;
我是一个迷失的灵魂哈哈,对于一般的编程来说相当新,老师没有任何帮助,提前感谢。
答案 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;
}