第七章 数组 - 程序员联合开发网.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数 组 简单数据类型 只能描述单一数据,不足以描述数据之间的关系,即不能描述一组具有一定关联的数据。 构造数据类型 构造方式:数据集,操作(整体、成分) 一维数组 数组定义、初始化数组 访问数组元素(数组下标) 数组作为函数参数 字符串处理 多维数组 一维数组 数组定义 若干具有相同类型的数据组成的有序集合 类型说明符 数组名[常量表达式] int A[5]; 连续存储,每个元素占的存储空间完全相同 下标是数组元素到数组开始的偏移量 0~n-1 数组名的含义 整体操作 sizeof 元素个数 注: typedef int ArrayTypeA[10]; ArrayTypeA A; 一维数组 初始化数组 在定义时直接给数组初始化 把给数组各个元素指定值的表达式顺序写出,放在一对花括号{ }中,各表达式间用 , 隔开 int A[4] = {1,2,3,4}; 这种初始化方式只能在定义时使用 初始化数组的值的个数不能多于数组元素的个数 必须按顺序进行初始化,不能跳跃 若初始化值的个数少于数组元素的个数时,前面的按序初始化,后面的值为0或不确定。 一维数组 int A[5]={1,2,3}; 带初始化的数组定义中,数组的大小可以省略 int A[ ]= {1,2,3}; sizeof(A)/sizeof(int) //数组的大小 int A[]; //invalid 初始化字符数组 约定结束符为 ‘\0’ char s[6] = {‘H’, ’e’, ’l’, ’l’, ’o’, ’\0’}; char s[6] = {“Hello”}; char s[] = “Hello”; 一维数组 访问数组元素 数组名 [下标表达式] 下标遍历 下标越界 em1: 基本I/O const int size=10; int A[size]; void main() { for (int k=0;ksize;k++) cin A[k]; …... for (k=0;ksize;k++) cout A[k]; } 一维数组 em2: 生成Fibonacci数 …... int A[10]; A[0] = 1; A[1] = 1; for (int k=2;k10;k++) A[k] = A[k-1] + A[k-2]; …... 一维数组 数组作为函数参数 原则:传递数组的地址 目的:节省空间,提高效率 函数体内对行参的操作,也即对实参的操作 void rev(int a[ ], int n) //最常见的写法 { int x, m=n/2; for (int k=0;km;k++) { x = a[k]; a[k] = a[n-k-1]; a[n-k-1] = x;} } 通常,在处理字符数组时,没必要将数组的大小作为函数参数 一维数组 由于仅仅是传递地址,因此,即使函数的形式参数中写明了大小,编译器也将忽略之。 在带有数组参数的函数体中,不能用sizeof求得数组得大小。 一维数组 排序和查找 Knuth 排序 冒泡排序法(bubble sort) 交换排序 插入排序法(insert sort) 快速排序法(quick sort) 查找 折半查找法 一维数组 给定含有m+n个元素得整数数组A(其中m0,n0),它分为两个互不重叠的,长度分别为m与n的子数组段,写出交换这两个子数组段的程序,要求不引入A以外的数组。 字符数组 字符串的操作 复制 连接 比较 void strcpy(char s[], char t[]) { int i=0; while ((s[i]=t[i]) != ‘\0’) i++; } 多维数组 二维数组 定义 类型说明符 数组名 [常量表达式1 ][常量表达式2] int A[2][3]; typedef int A1[3]; typedef A1 A[2]; 存储组织 多维数组的定义和存储组织 二维数组 初始化 int A[2][3] = { {1,2,3}, {4,5,6}}; int A[2][3] = {1,2,3,4,5,6}; int A[][3] = {1,2,3,4,5,6} 可以省略第一维,但是第 二维不能省 int A[][3] = { {1,2}, {3}}; 下标遍历 for (int i=0; isizeof(A)/sizeof(A[0]); i++) { for (int j=0; jsizeof(A[0])/sizeof(A[0][0]); j++) cout A[i][j] ; cout endl;

文档评论(0)

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

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

1亿VIP精品文档

相关文档