当前课程知识点:C语言程序设计(上) > 数组(一) > 5.2 一维数组的定义和引用 > 5.2.4 一维数组的应用2--Fibonacci数列
我们下来再看一个例子
这个例子也很简单
它们的规律是
当前项是前两项之和
这非常适合数组
因为数组的特点就是
保留了它所有的原始数据
那我们用前两项之和
这对数组来说轻而易举
只要到前边找它的前两个位置
就可以了
而位置 是可以靠循环
循环变量去控制的
所以 这对数组来说
生成这样的一个数列
就是非常简单 我们看一下这个程序
程序里边我们NUM
给了一个符号常量 生成20个数据
前两个数据我们给它初始化进去了
初始化进去
两个1 那后边就会变成0了
如果我们不赋进去新的值
那后边的18个数据全都是0了
第一个for里边做什么工作呢
从2号
下标为2的位置 第三个数据开始
到小于
就是到19就可以了
那当前每一个a[i]是谁呢
很简单 它的前两个数
加起来是它的当前数
再用一个循环把它输出
所以这个程序
对数组来说
就是这个应用
对数组来说就是一个非常简单的一个程序
我们在看一下Fibonacci数列这道题
这道题是典型的数组的一个应用的题目
我们看数组是这样定义的
然后 定义了一个整型的数组
前边 它的初值给了
前两个元素赋了初值
而后边的这个数列的生成
是靠在这个循环里边去体现的
那循环里边
我们用了总是前两个数据之和
我们刚才分析过了
怎么取到前两个数据 位置
按位置去取
我们运行一下这个程序
这是我们看到的得到的数据
如果
咱这块不用\t
前面我给 我们给一个位置
给一个10这么宽
它是这样 拐回来
那如果我们现在呢
把这个数列改一下
它生成50个数这么的一个数列
我们看它表达有没有问题呢
大家看
它的问题是显而易见的
已经出现了负数了
这是本来是数列里边是不可能的
那么为什么会这样呢
这就是我们在要提醒大家的一个问题
对于数组来说
它不仅仅有个下标越界的问题
数组里边也特别容易
尤其是这种数列这类的问题
特别容易产生数据溢出
在我就得50这个数据并不
量并不大的情况下
实际上你一个整形数的表达
已经超过了它的范围
就是数据就产生了溢出
而这种问题 是在编译的时候呢
它不容易被发现的
所以大家出过数读的
下标越界要注意之外 溢出也是要注意
那我们通过这个题目
并不是想强调这两件事
更重要的是想强调
数组的使用的时候位置是一个非常重要的
也是非常好用的一个概念
-1.1 计算机的问题求解方法
--讨论题:数学模型
-1.1 计算机的问题求解方法--作业
-1.2 C语言与C程序
--讨论题:运算符
-1.3 C语言处理系统与程序调试运行
--例程
-1.4 程序中的人机交互
--例程
--作业讨论区
-2.1 算术运算的C程序实现
--算术混合运算.c
-2.1 算术运算的C程序实现--作业
-2.2 关系运算的C程序实现
--bukao.c
--字符比较.c
--讨论题:比较大小
-2.2 关系运算的C程序实现--作业
-第二周作业--作业
-2.3 逻辑运算的C程序实现
--计算结合性
--闰年.c
--自动购票问题.c
-2.3 逻辑运算的C程序实现--作业
-2.4 位运算的C程序实现
--讨论题:位运算
-2.5 几种很个别的运算
--讨论题
--讨论题
-2.5 几种很个别的运算--作业
-2.6 混合运算及数据类型转换
--讨论题:数据类型
-2.7 顺序结构程序实例
--Video
--三角形面积.c
--讨论题:工业产值
-2.7 顺序结构程序实例--作业
-3.1 程序中的路径选择实现
--打印学生成绩.c
--一元二次方程.c
-3.1 程序中的路径选择实现--作业
-3.2 路径中的再选择——嵌套判断
--例程
--讨论题:程序改错
-3.2 路径中的再选择——嵌套判断--作业
-3.3 复杂判断问题的C程序设计
--3.3 多级选择
--银行存款.c
--讨论题:多级选择
-3.4 多分支问题的C程序设计
--加减乘除运算.c
-3.4 多分支问题的C程序设计--作业
-3.5 GOTO的适当使用
-3.6 选择结构的程序实例
--3.6 程序展示
--计算第几天.c
--讨论题:输出奇数
--讨论题:计算税金
-3.6 选择结构的程序实例--作业
-第四周作业--作业
-4.1 需要重复执行的程序
--求和.c
--打印学生成绩.c
--统计录入速度.c
--求平均数.c
-4.1 需要重复执行的程序--作业
-4.2 至少要执行一次的循环
--n的阶乘.c
--字符分类统计.c
-4.2 至少要执行一次的循环--作业
-4.3 已知循环次数用for语句
--求和问题.c
--数列求和.c
--讨论题:循环语句
-4.3 已知循环次数用for语句--作业
-4.4 循环控制——简单循环应用
--水仙花数.c
--讨论题:死循环
--讨论题:猜数字
-循环结构的程序设计(一)--4.4 循环控制——简单循环应用
-4.5 循环的嵌套
--讨论题:程序运行
-4.5 循环的嵌套--作业
-4.6 break与continue
--最大素数.c
-4.6 break与continue--作业
-4.7 循环的综合应用
--数的排列组合.c
--鸡兔同笼.c
--打印空心字符.c
--讨论题:打印图形
--讨论题:计算闰年
-第六周作业
-第六周作业--作业
-5.1 同类有序数据处理问题
-5.2 一维数组的定义和引用
--数组定义.c
--数组初始化.c
--反向输出.c
--讨论题:对称数
-5.2 一维数组的定义和引用--作业
-5.3 一维字符串数组
--讨论题:编程
-5.4 字符串处理函数
--字符串反向.c
--字符串函数
-5.5 二维数组的定义与使用
-5.6 二维数组的输入输出
-5.6 二维数组的输入输出--作业
-5.7 二维数组的应用
--转置矩阵.c
--讨论题:修改程序
-5.8 二维字符数组
--5.8 单词排序
--单词排序.c
-5.8 二维字符数组--作业
-5.9 数组综合应用
--统计成绩.c
--统计字符次数.c
--讨论题:洗牌
-本期课程结束语
--end
-第八周编程作业
-《C语言程序设计(上)》期末复习参考
--html
-《C语言程序设计(上)》期末复习参考答案
--html