C言语教学chap7.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C言语教学chap7

第七章 数组 一、一维数组的定义和引用 定义 数组类型名 数组名[常量表达式]; 例:int a[10]; 说明:a为数组名,int a[10]表示a数组在内存中开辟了10个连续的存储单元存放a数组的10个变量a[0]、a[1]、…、a[9],且每个元素均为整型 使用注意: 数组名是用户自定义标识符 数组元素下标由0开始,下标值为正整数 常量表达式定义了数组的长度,长度值不能由变量充当,即不允许对数组大小作动态定义 错例: int n; scanf(“%d”,n); int a[n]; 数组的引用 地址引用: 在C语言中,数组名代表该数组的首地址,即第0个元素的地址 引申:第1个元素地址:a+1 第2个元素地址:a+2 …… 第i 个元素地址:a+i 元素引用: 数组名[下标表达式];(下标由0开始) 只能逐个引用数组元素而不能一次引用整个数组 数组的初始化 在定义时赋值 int a[10]={0,1,2,3,4,5,6,7,8,9}; 相当于:a[0]=0; a[1]=1;……; a[9]=9; 只赋值一部分,剩余部分按“0”处理 int a[10]={1,2,3,4}; 则a[4]~a[9]为0; 允许通过所赋初值的个数来定义数组长度 int b[ ]={1,2,3,4}; 等价于:int b[4]={1,2,3,4}; 数组元素的赋值与输入 赋值:类似于常量的赋值 如:a[0]=2; a[1]=a[0]+2; 等等 有规律的赋值可用循环完成 for(i=0; i10; i++) a[i]=i; 用scanf函数进行数据输入 方法一:for(i=0;i10;i++) scanf(“%d”, a[i]); 方法二:for(i=0;i10;i++) scanf(“%d”,a+i); 程序设计 设计初步 首先解决数组元素成批输入和输出 例1:定义10个长度的整型数组,输入10个数,并按顺序输出 例2:求Fibonacci数列的前40个数 Fibonacci数列的数学表示为: f[0]=1; f[1]=1; …… f[n]=f[n-1]+f[n-a] 分析:定义一个40个长度的长整型的数组,初始化数组的前2 项,其余各项在循环中用通式确定 流程图: 几个经典的排序算法 排序的基本思想 数据k1、k2、…、ki、ki+1、…、kn,若存在kiki+1,即存在逆序,则交换之消除逆序 算法一(选择排序法) 算法思想:第一次的大小比较,找到最小的数,放在a[0]中,第二次的大小比较在剩下的数据中进行,找到其中最小的数据放在a[1]中,……,直到最后一个数据 流程图: 算法二(冒泡排序法) 算法思想:对相邻的两个数进行比较,小数放前,大数放后,经过一轮比较后,小数上浮,大数沉底,以此类推,经过最后一轮比较得到最后的排序结果 流程图: 例3:有一数组a[10]已排成升序,写一程序在不引入其它数组的情况下将其改为降序 二、二维数组的定义和引用 定义: 类型名 数组名[常量表达式1][常量表达式2] 例:int a[2][3]; 说明: int a[2][3];表示数组a在内存中开辟了6个连续的存储单元,用来存储数组元素a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2],每一维的下标由0开始,在内存中按行存放。 a[2][3]包含两个元素a[0]、a[1], a[0]由a[0][0]、a[0][1]、a[0][2]组成; a[1]由a[1][0]、a[1][1]、a[1][2]组成 二维数组的引用 地址引用: 在C语言中,一个二维数组可看成一个一维数组,其中每一个元素又是一个一维数组 二维数组元素在内存中按行存放,所以a[0]为第0行的首地址 引申:第0行的首地址为:a[0] 第1行的首地址为:a[1] …… 第i 行的首地址为:a[i] 二维数组任一元素a[i][j]的地址为: a[i][j]等价表示为a[i]+j 元素引用 二维数组的元素只能逐个引用,不能一次引用整个数组 数组元素的表示为: 数组名[下标1][下标2]; 下标由0开始编写,不能超过数组定义的长度 数组元素可出现在表达式中参与运算 b[1][2]=a[2][3]/2; 等等 二维数组的初始化 分行初始化: int a[2][3]={{1,3,5},{2,4,6}}; 按数组在内存中的排列顺序

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档