一道c程编程题 来帮帮我 谢谢大家了

来源:百度知道 编辑:UC知道 时间:2024/06/25 16:00:52
编写函数int fun(int m,int n,int *p),要求将范围[m,n]之间所有的fibonacci数写入p所指的一维数组中,fibonacci数的个数通过函数返回值带回。例如,[0,30]之间的fibonacci数有7个,它们是:1 2 3 5 8 13 21 ;[1000,32767]之间有7个,它们是:1597 2584 6765 10946 17711 28657 。
int fun(int m,int n,int *p)
{
}
void main()
{int a,b,n,c[22],i;
scanf("%d%d",&a,&b);
n=fun(a,b,c);
for(i=0;i<n;i++)
printf("%6d",c[i]);
printf("\nn=%d\n",n);
}
谢谢大家了,做出来追加分

#include <stdio.h>
int Fibonacci[1000]={0,1};
int IsFibonacci(int x)
{
int r=0;
int s=1;
int t=1;
if(x==0 || x==1)
return 1;
while(t<x)
{
r=s;
s=t;
t=r+s;
}
if(x==t)
return 1;
else
return 0;
}
int fun(int m,int n,int *p)
{
if(m>n)
{
printf("输入有误,第一个整数应该小于第二个整数\n");
return 0;
}
int i,count=0,*t=p;
for(i=m;i<=n;i++)
if(IsFibonacci(i))
{
count++;
*t=i;
t++;
}
return count;
}

void main()
{
int a,b,n,c[22],i;
scanf("%d%d",&a,&b);
n=fun(a,b,c);
for(i=0;i<n;i++)
printf("%6d",c[i]);
printf("\nn=%d\n",n);
}