1. 1、本文档共76页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lec5 数组

C语言程序设计 Lec 5 数组 引言 问题1:求4个整数的最大值 如何表示4个整数? 如何求出最大值? 引申:求n(n100)个整数的最大值 如果仍然采用前面的方法存在什么问题? 问题2:如何表示一个向量和矩阵这样的复合数据? 如果用独立的变量来分别表示它们的元素,则会面临: 变量数量太多。 变量之间缺乏显式的联系。 解决前面问题的思路: 将n个同类型变量以整体的形式表示 能够以简单的方式访问整体中的每个元素 已具备的知识 每个变量在内存中都有对应的地址,知道该地址就可以访问变量 每个变量占据的内存大小只取决于变量类型 一种可能的解决方式 假设n个同类型变量在内存中连续存放,依次编号为0,1,2,…n-1 已知第一个变量的内存地址为a 每个变量占据的内存大小为SIZE 需要解决的问题 如何才能让一组同类型变量连续存放? 第一个变量的地址如何得到? 能否直接通过编号引用任意一个变量,而将变量地址计算及通过地址访问变量的操作隐含在编号中? 主要内容 数组定义和使用 二维和多维数组 字符数组和字符串 5.1 数组定义和使用 数组的概念 C语言提供了数组类型的构造方法: 数组类型是一种由固定多个同类型的元素按一定次序所构成的复合数据类型。 数组类型是一种用户自定义的数据类型。 数组类型可分为: 一维数组 二维数组 多维数组(三维及三维以上) 定义数组的方法 语法:元素类型 数组名称[ 元素个数 ]; 元素类型可以是任意类型 数组名称(数组变量)必须是合法标识符 数组元素个数必须是常量表达式[注] 数组在内存中的实现 数组名是一个内存地址(不可修改),称为数组首地址 数组元素从首地址开始连续存放 访问数组元素 访问数组元素的方法:数组名[下标] 数组下标从0开始计数,最后一个元素下标是数组大小-1 下标可以是常数、变量和表达式,但计算结果必须是整数 访问数组元素 每个数组元素都是一个独立的变量,可以赋值或取值。 通常情况下,对数组数据的操作往往要通过遍历其元素来进行。 C语言数组的特性带来的问题 C语言数组通过下标来计算元素的地址,但并未限制下标不能超出元素个数 数组初始化 数组元素和变量一样应该先初始化才能使用 方法1:先定义数组,然后用循环初始化每个元素 数组初始化 方法2:在定义数组时指定元素的初始值 格式:所有初值用大括号包围,逗号分隔 数组初始化 初始化数组时易犯的错误 使用方法1时,数组下标越界 使用方法2时初值个数大于数组元素个数 例1:求100个整数的最大值 例2:输入8个整数,然后按输入的相反顺序显示这些数据。 例3:计算Fibonacci数列的前40项 例3:计算Fibonacci数列的前40项 例5:数组排序:从键盘输入8个整型数,把它们从小到大排序,然后输出排序后的结果。 排序的方法? 选择排序、起泡排序 快速排序、归并排序、堆排序 选择排序算法 第一趟在n个元素中选取最小元素,与第一个元素交换位置;第二趟在n-1个元素中选取最小元素,与第二个元素交换位置;第i趟在n-i+1个元素中选取最小元素,与第i个元素交换位置,…,一直到剩下的数只有一个为止。 选择排序算法 第一趟排序 选择排序算法 第一趟排序 选择排序算法 第二趟排序 选择排序算法 第二趟排序 选择排序算法 第二趟排序 选择排序算法 第二趟排序 选择排序算法 第七趟排序 选择排序算法 第七趟排序 排序算法应用 例6:写一个程序,对给定的整数序列排序,然后求排序后序列的中位数。(一个有序序列的中位数是序列中间位置上的数,如果该序列长度为偶数,则中位数取中间两个数的平均值向下取整)。 数组有哪些信誉好的足球投注网站 有哪些信誉好的足球投注网站一个数组以确定一个特定数值的位置 数组有哪些信誉好的足球投注网站 数组有哪些信誉好的足球投注网站 折半(二分)有哪些信誉好的足球投注网站 在有序数组上的快速有哪些信誉好的足球投注网站方法 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站成功的例子 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站成功的例子 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站成功的例子 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站成功的例子 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站失败的例子 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站失败的例子 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站失败的例子 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站失败的例子 折半(二分)有哪些信誉好的足球投注网站:有哪些信誉好的足球投注网站失败的例子 练习 编写程序将数组x中的整数以相反顺序复制到数组y中(也就是y[0]中保存x[n-1], … ,y[n-1]中保存x[0]) 5.2 二维和多维数组 一维数组处理线性结构 二维数组可以处理矩阵 例如一幅800×600的图像 一个行列式 C语言对二维数组的表示 内存是一维线性编址,没有行列的概念 C语言将二维数组的一行作为一个一维数组,二维数组就是连续多个一维数组 多维数组以此类推 C语言对二维数组的表示 二维数组初始化 方法1:按行初始化 二维数组初始化 方法2:将二维数组当作一维数组初始化 二维数组初

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档