fibonacci数组练习

今天练习了一个程序,是输出fibonacci数组取余的数,发现了自己的许多问题:

1.动态数组分配内存的问题,之前我一直以为程序只要能出结果就可以,原来还要考虑内存出错的问题;

而且我记不住C语言里面怎样动态分配内存,每次都要上网查。默写一下(例如用int)

int *a;

a=(int*)malloc(sizeof(int)*n);

2.选择数据类型的问题,我一直是盲选的因为我记不住每种类型的范围。

然后我刚刚去找了各种数据类型的范围,希望我能记住

B = byte 即字节 (1 byte = 8 bit)
b = bit 即比特

短整型short

 范围:-32768~32767  (-2^15~2^15-1)

 所占内存大小:2byte=16bit

整型int

范围:-2147483648~2147483647(-2^31~2^31-1)

占内存大小:4byte=32bit

unsigned:  

 范围:0~4294967295(0~2^32-1)

 所占内存大小:4byte=32bit

长整型long
范围:-2147483648~2147483647(-2^31~2^31-1)

所占内存大小:4byte=32bit 

unsigned long:  所占内存大小:4byte=32bit

范围:0~4294967295(0~2^32-1)

3.居然忘记了数组是从0开始的o(╥﹏╥)o




下面是练习的代码


#include <stdio.h>
#include <malloc.h>
int main()
{
unsigned long *Fn;
unsigned long n;

scanf_s("%ld", &n);
Fn = (unsigned long*)malloc((n + 1)*sizeof(unsigned long));
Fn[0] = 1;
Fn[1] = 1;
if (n > 2)
{
int i = 2;
for (i; i <=n; i++)
{


Fn[i] =( Fn[i - 2] + Fn[i - 1])%10007;


}
}
printf("%ld", Fn[n-1]);
free(Fn);
return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值