第4章 数组.ppt

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

C++程序设计教程 第 4 章 数 组 第4章 数 组 4.1 一维数组与多维数组 4.2 字符数组与字符串 4.3 数组与指针 4.4 程序举例 ● 习题 ● 实验 ● 课堂练习 1. 指针数组概念 每个元素都为指针变量的数组。 2. 指针数组定义 定义的基本格式:数据类型 * 数组名[数组大小] 其中数据类型是指指针数组中每个元素(指针变量)所指向的内存空间的类型。 例如: float s[5]; float *p[5]; for(int i=0;i<5;i++) p[i]=&s[i]; for( i=0;i<5;i++) cout<<p[i]<<‘\t’; for( i=0;i<5;i++) *(p[i])=10+i; 4.3.5 指针数组 s: 实型变量 p[2] p: 实型指针 p[4] p[3] p[1] p[0] s[0] s[1] s[2] s[3] s[4] 10 11 12 13 14 //输出&s[0]~&s[4] 3. 指针数组使用 (1) 指针数组的每个元素保存一个地址; (2) 通过指针数组的元素(地址)引用其所指向的内存空间。 【例4-13】把32位TCP/IP地址转换成对应的点分十进制数。 程序设计 ① 定义32个元素的整型数组IP保存32位TCP/IP地址。 ② 定义4个元素的指针数组ip保存数组IP中每个字节的首地址 。 ③ 把指针数组ip中每个元素所指的二进制数转换为十进制数,并存入数组n,n[i]+=ip[i][j]*t,t*=2,其中2为二进制数的位权。 4.3.5 指针数组 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0 ip[2] ip: ip[3] ip[1] ip[0] 【例4-14】设计一个程序,将一维数组中的元素从小到大排序(升序排列)。 程序设计(选择排序法) ① 对于n个元素的一维数组a,第1趟排序时,将最小的元素放到第1位,即a[0]位置;第2趟排序时,将次小元素,即剩余元素中的最小元素放到a[1]位置;以此类推,共进行n-1趟排序,最后一趟排序时,将次大元素放到a[n-2]位置;最后剩下的元素,即最大元素,无需排序,自动落入a[n-1]位置。这通过循环语句实现,i从0开始,到n-2为止,每次循环,找出当前的最小元素,放入当前位置,即a[i]位置,这通过第②步实现。 ② 每趟排序,把当前元素a[i]与其后的所有元素进行比较。通过循环语句完成比较,a[i]后面的元素用a[j]表示,则j从i+1开始,到n-1为止。比较的过程中,若a[i]>a[j],则交换a[i]与a[j]。 4.4 程序举例 【例4-15】把键盘输入的数(n)插入到有序序列(num)中,并保持序列有序。 程序设计 ① 数组中已有数据的个数必须小于数组的大小,插入前先查找插入的位置,然后把该位置及其后面的元素依次向后移一位。 ② 对于升序序列,查找的方法是,从前到后遍历数组中的元素,若要插入的数据小于某元素,终止循环,该位置即为插入位置;否则继续比较下一个元素。 ③ 找到插入位置后,从后到前把插入位置(含)之后的元素后移一位。 ④ 把n插入到插入位置,已有数据的个数加1。 4.4 程序举例 【例4-16】设计一个程序删除字符串中的空格字符。 程序设计 ① 定义字符型数组str,通过cin.getline输入含空格的字符串。 ② 遍历数组,若遇到空格字符,其后的字符依次向前移一位。 【例4-17】设计一个程序,把r行c列无重复值的二维数组b中的最小元素放到首位,最大元素放到末位。 程序设计 ① 定义变量分别表示最小值及其所在的行、列,最大值及其所在的行、列。 ② 设第1个元素为最小值和最大值;遍历二维数组,把所有元素与最小值和最大值比较,找出最小值和最大值,及其所在的位置。 ③ 把最小值交换到b[0][0]位置,把最大值交换到b[r-1][c-1]位置。 4.4 程序举例 【例4-18】设计一个程序,把二维数组中的元素上移一行,其中第1行移到最后。 程序设计 ① 可用二维字符数组存储系列字符串,其中的每一行是一个一维数组,保存一个字符串。 ② 把二维数组week的每列看成一维数组,7行10列的二维数组由10个一维数组组成。把每个一维数组,即第1列至第10列(i=0;i<10

文档评论(0)

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

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

1亿VIP精品文档

相关文档