/*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;
}
#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;
}