浙江大学c语言课件第七章(颜辉)

上传人:灯火****19 文档编号:124383970 上传时间:2020-03-11 格式:PPT 页数:77 大小:366.51KB
返回 下载 相关 举报
浙江大学c语言课件第七章(颜辉)_第1页
第1页 / 共77页
浙江大学c语言课件第七章(颜辉)_第2页
第2页 / 共77页
浙江大学c语言课件第七章(颜辉)_第3页
第3页 / 共77页
浙江大学c语言课件第七章(颜辉)_第4页
第4页 / 共77页
浙江大学c语言课件第七章(颜辉)_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《浙江大学c语言课件第七章(颜辉)》由会员分享,可在线阅读,更多相关《浙江大学c语言课件第七章(颜辉)(77页珍藏版)》请在金锄头文库上搜索。

1、第七章 数组 一维数组 二维数组 字符串 输入 30 个数 将它们排序后输出 数组 相同类型数据的有序集合 在内存中连续存放 用数组名和下标唯一地确定数组元素 每个元素都属于同一类型 s 0 1 2 29 s 0 s 1 s 29 s0 s1 s2 s29 一批相同类型的变量使用同一个数组变量名 用 下标来相互区分 优点 表述简洁 可读性高 便于使用循环结构 s 0 1 2 29 s 0 s 1 s 29 7 1 一 维 数 组 7 1 1 一维数组的定义和引用 1 定义 类型名 数组名 数组长度 类型名 数组元素的类型 数组名 数组变量的名称 数组 标识符 数组长度 常量表达式 给定数组的大

2、小 int a 10 定义一个含有10个整型元素的数组 a int a 10 定义一个含有10个整型元素的数组 a char c 200 定义一个含有200个字符元素的数组 c float f 5 定义一个含有5个浮点型元素的数组 f 2 数组元素的引用 先定义 后使用 只能引用单个的数组元素 不能一次引用整 个数组 数组元素的引用 数组名 下标 下标 整型表达式 取值范围 数组长度 1 int a 10 10个元素 a 0 a 1 a 9 下标不要越界 不能使用a 10 定义数组 类型名 数组名 数组长度 引用数组元素 数组名 下标 数组元素的使用方法与同类型的变量相同 int k a 10

3、 k 3 a 0 23 a k 2 a 0 1 scanf d 区分 定义数组 和引用数组元素 定义数组 类型名 数组名 数组长度 引用数组元素 数组名 下标 int a 10 a 0 a 1 a 9 0 下标不要越界 main int a 10 int i for i 0 i 10 i a i i for i 0 i 10 i printf d a i 输出 0 1 2 3 4 5 6 7 8 9 a 0 a 1 a 9 a 0 1 2 3 4 5 6 7 8 9 main int i int a 10 for i 0 i 10 i scanf d for i 0 i 0 i printf

4、d a i 输入 1 2 3 4 5 6 7 8 9 10 a 0 a 1 a 9 a 1 2 3 4 5 6 7 8 9 10 输出 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 3 程序举例 例 7 1 输入10个数 求和 例 7 2 用数组计算fibonacci数列的前20个数 并按每行打印5个数的格式输出 1 1 2 3 5 例7 3 输入5个整数 将它们存入数组a中 再输入1个数x 然后在数组中查找x 如果 找到 输出相应的下标 否则 输出 Not Found 程序举例 例 7 4 1 输入10个数 求最小值 例 7 4 2 输入n n 10 再

5、输入n个数 求最小 值 例 7 4 3 输入n n 10 再输入n个数 输出最小 值和它所对应的下标 例 7 4 4 输入n n 10 再输入n个数 将最小值 与第一个数交换 输出交换后的n个数 例 7 5 输入n n 10 再输入n个数 用选择法将 它们从小到大排序后输出 例 7 1求和 输入10个数 求和 main int i a 10 long sum for i 0 i 10 i scanf d sum 0 for i 0 i 10 i sum sum a i printf ld n sum include stdio h void main int a 10 i long sum 0

6、 for i 0 i 10 i scanf d sum sum a i printf ld n sum 用数组计算fibonacci数列的前20个数 并按每 行打印5个数的格式输出 1 1 2 3 5 8 13 分析 用数组计算并存放fibonacci数列的前20个数 f 0 f 1 1 f n f n 1 f n 2 2 n 19 例 7 2 计算fibonacci数列 main int i fib 20 fib 0 fib 1 1 for i 2 i 20 i fib i fib i 1 fib i 2 for i 0 i 20 i printf 6d fib i if i 1 5 0 p

7、rintf n 输入5个整数 将它们存入数组a中 再输 入1个数x 然后在数组中查找x 如果找 到 输出相应的下标 否则 输出 Not Found 例7 3查找 输入 2 9 8 9 6 9 输出 1 void main int i x a 5 for i 0 i 5 i scanf d scanf d for i 0 i 5 printf Not Found n 1 3 void main int i x a 5 for i 0 i 5 i scanf d scanf d for i 0 i 5 i if a i x printf d n i 输入 2 9 8 9 6 9 输出 输入 2 9

8、 8 9 6 9 输出 3 void main int i x sub a 5 for i 0 i 5 i scanf d scanf d for i 0 i 5 i if a i x sub i printf d n sub 输入10个数 求最小值 main int i min a 10 for i 0 i 10 i scanf d min a 0 for i 1 i 10 i if a i min min a i printf d n min 例 7 4 1 求最小值 输入n n 10 再输入n个数 求最小值 main int i min n a 10 scanf d for i 0 i

9、n i scanf d min a 0 for i 1 i n i if a i min min a i printf d n min 例 7 4 2 求最小值 n个数 输入n n 10 再输入n个数 输出最小值和 它所对应的下标 用index记录最小值对应的下标 a index 就是最小值 例 7 4 3 求最小值 下标 输出最小值和它所对应的下标 N S流程图 输入数组a index 0 for i 1 to n 1 a i a index index i 输出最小值a index 和下标index Y N main int i min n a 10 scanf d for i 0 i n

10、 i scanf d index 0 for i 1 i n i if a i a index index i printf d d n a index index 输入n n 10 再输入n个数 将最小值与 第一个数交换 输出交换后的n个数 用index记录最小值对应的下标 a index 就是最小值 最小值与第一个数交换 a index a 0 例 7 4 4 最小值交换 例 7 5 选择法排序 3528 1 输入n n 10 再输入n个数 用选择法将它 们从小到大排序后输出 n 5 1 1 5 2 8 3 2 2 5 8 3 3 3 8 5 4 5 8 3 5 2 8 1 n 5 5个数

11、 a 0 a 4 中找最小数 与a 0 交换 1 1 5 2 8 3 a 4 a 0 4个数 a 1 a 4 中找最小数 与a 1 交换 2 1 2 5 8 3 a 2 a 1 3个数 a 2 a 4 中找最小数 与a 2 交换 3 1 2 3 8 5 a 4 a 2 2个数 a 3 a 4 中找最小数 与a 3 交换 4 1 2 3 5 8 a 4 a 3 1 n个数 a 0 a n 1 中找最小数 与a 0 交换 2 n 1个数 a 1 a n 1 中找最小数 与a 1 交换 n 1 2个数 a n 2 a n 1 中找最小数 与a n 2 交换 1 5个数 a 0 a 4 中找最小数 与

12、a 0 交换 2 4个数 a 1 a 4 中找最小数 与a 1 交换 3 3个数 a 2 a 4 中找最小数 与a 2 交换 4 2个数 a 3 a 4 中找最小数 与a 3 交换 n个数 a 0 a n 1 中找最小数 与a 0 交换 N S流程图 输入数组a index 0 for i 1 to n 1 a i a index index i a index a 0 Y N N S流程图 选择排序 输入数组a index k for i k 1 to n 1 a i a index index i a index a k Y N for k 0 to n 2 输出数组a void main

13、 int i index k n temp a 10 scanf d for i 0 i n i scanf d for k 0 k n 1 k index k for i k 1 i n i if a i a index index i temp a index a index a k a k temp for i 0 i n i printf d a i 7 1 2 一维数组的初始化 定义数组时 对数组元素赋初值 类型名 数组名 数组长度 初值表 1 对全部元素赋初值 int a 10 0 1 2 3 4 5 6 7 8 9 a 0 0 a 1 1 a 9 9 静态数组 全局数组 自动型数

14、组初始化 static int b 5 1 2 3 4 5 静态存储的数组如果没有初始化 自动给所有 元素赋0 static int b 5 2 部分元素初始化 static int b 5 1 2 3 b 0 1 b 1 2 b 2 3 b 3 0 b 4 0 auto int fib 20 0 1 如果对全部元素都赋初值 可以省略数 组长度 int a 0 1 2 3 4 5 6 7 8 9 建议不要省略数组长度 7 2 二维数组 多维数组的空间想象 二维数组 一个表格或一个平面矩阵 一维数组 一列长表或一个向量 多维数组 多维空间的一个数据列阵 三维数组 三维空间的一个方阵 7 2 1

15、二维数组的定义和引用 1 定义 类型名 数组名 行长度 列长度 int a 3 2 定义1个二维数组a 3行2列 6个元素 int b 5 10 5 行 10 列 50 个元素 2 数组元素的引用 先定义 后使用 定义 类型名 数组名 行长度 列长度 数组元素的引用 数组名 行下标 列下标 行下标的取值范围是 0 行长度 1 列下标的取值范围是 0 列长度 1 下标不要越界 int a 3 2 3 行 2 列 6 个元素 表示1个3行2列的矩阵 a 0 0 a 0 1 a 1 0 a 1 1 a 2 0 a 2 1 二维数组的元素在内 存中按行 列方式存放 a 0 0 a 0 1 a 1 0

16、a 1 1 a 2 0 a 2 1 遍历二维数组 行下标和列下标分别做为循环变量 通过二重 循环 遍历二维数组 通常将行下标做为外循环的循环变量 a 0 0 a 0 1 a 1 0 a 1 1 a 2 0 a 2 1 for i 0 i 3 i for j 0 j 2 j a i j i j i 0 j 0 i 0 j 1 i 1 j 0 i 1 j 1 i 2 j 0 i 2 j 1 0 1 1 2 2 3 输入二维数组 int a 3 2 for i 0 i 3 i for j 0 j 2 j scanf d 输入 1 2 3 4 5 6 a 0 0 a 0 1 a 1 0 a 1 1 a 2 0 a 2 1 1 2 3 4 5 6 按矩阵的形式输出二维数组 int a 3 2 for i 0 i 3 i for j 0 j 2 j printf d printf n a 0 0 a 0 1 a 1 0 a 1 1 a 2 0 a 2 1 3 程序举例 例7 6 定义1个3 2的二维数组a 数组元素的 值由下式给出 按矩阵的形式输出a a i j i j 0 i 2 0 j 1 例

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号