您的位置:首页 > 其它

Fibonacci斐波那契数列-实现2

2017-08-02 17:34 274 查看
/*Fibonacci斐波那契数列*/

#include <stdio.h>

#include <malloc.h>

typedef struct _soft_array//定义一个柔性数组

{
int len;
int arr[];

}SoftArray;

SoftArray* create_soft_array(int size)//创建柔性数组空间

{
SoftArray* ret=NULL;
if(size > 0)//安全性检测
{
ret=(SoftArray*)malloc(sizeof(SoftArray)+sizeof(int)*size);
ret->len=size;
}
return ret;

}

void fib(SoftArray* sa)//打印斐波那契数列

{
int i=0;

if(NULL != sa)//安全性检测
{
if(1==sa->len)
{
sa->arr[0]=1;
}
else
{
sa->arr[0]=1;
sa->arr[1]=1;

for(i=2;i<sa->len;i++)
{
sa->arr[i]=sa->arr[i-1]+sa->arr[i-2];//得到斐波那契数列每个元素的值
}

for(i=0;i<sa->len;i++)
{
printf("%d\n",sa->arr[i]);//打印斐波那契数列

}
}
}

}

void delete_soft_array(SoftArray* sa)//释放内存空间的函数

{
free(sa);

}

int main()

{
SoftArray* sa=create_soft_array(10);//创建柔体数组,大小为10

fib(sa);

delete_soft_array(sa);//释放空间

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  柔性数组