数组是一个由若干有序的同类型变量组成的集合.ppt

数组是一个由若干有序的同类型变量组成的集合.ppt

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

第五章 数组 数组 数组是一个由若干有序的同类型变量组成的集合; 一维数组: 类型说明符 数组名[常量表达式] 常量表达式中可以包括常量、符号常量和枚举常量,但不能包含变量。 例如: int a[4]; 数组元素为:a[0],a[1],a[2],a[3] 一维数组的初始化 在定义数组时对数组元素赋初值,将数组元素的初值依次放在一对大括号里,用逗号隔开。数组元素与初值是一一对应的。例如: int a[4] = {0, 1, 2, 3}; 相当于: a[0] = 0; a[1] = 1; a[2] = 2; a[3] = 3; 初值的个数可以少于元素的个数,但不能大于元素的个数; int a[4] = {1, 2}; 等价于: a[0] = 1; a[1] = 2; int a[4] = {1,2,3,4,5}; //Error int b[5] = {1,,2,3}; //Error int b[5] = {1,2,3,}; //Error 在对全部数组元素赋初值时,可以不指定数组的长度。例如: int a[ ] = {1, 2, 3, 4, 5}; 等价于: int a[5] = {1, 2, 3, 4, 5}; 字符数组 用来存放字符数据的数组。 字符数组的初始化及引用方式遵循数组的初始化和引用方式 char c[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘W’,‘o’,‘r’,‘l’,‘d’}; 将字符串作为字符数组来处理,并以字符‘\0’来表示字符串的结束标志。用字符串赋值多分配一个存放结束标志空间,数组大小多一 char c[]={“HelloWorld”}; 等价于: char c[]=“HelloWorld”; 等价于: char c[11]={‘H’,‘e’,‘l’,‘l’,‘o’,‘W’,‘o’,‘r’,‘l’,‘d’, ‘\0’}; 字符串处理函数 puts:将一个字符串输出到终端; gets:从终端输入一个字符串到字符数组; strcat:连接两个字符数组中的字符串; strcpy:两个字符串复制; strcmp:两个字符串比较; strlen:返回字符串的实际长度(不包括末尾的‘\0’字符)。 strlwr:把字符串中的大写字母换成小写字母。 strupr:把字符串中的小写字母换成大写字母。 冒泡排序算法 排序问题:输入一组数据,然后把它们按照从小到大或从大到小排列。最后输出排序后的结果。 冒泡排序算法:使较小的值象气泡一样逐渐“上浮”到数组的顶部,而较大的值逐渐“下沉”到数组的底部。 算法分析 最小的一个数(1)经过第一遍扫描就交换到a[0]; 次轻的(2)经过第二遍扫描后交换到a[1]; 再轻的(3)经过第三遍扫描后交换到a[2]; … 依此类推,有6个数,前5个数到位需要5遍扫描,而第6个最大的数自然落在a[5]中。因此,6个数只需5遍扫描,第j遍扫描得到的最小值,被交换到a[j]当中,j=0,1,2 … n-2, n=6。 算法分析 第j遍扫描中,分别对数组元素对 i=n-1,n-2,…,j+1,进行比较: 当j=0时,i=5,4,3,2,1。也就是a[5]与a[4]比较、a[4]与a[3]比较、a[3]与a[2]比较、a[2]与a[1]比较、a[1]与a[0]比较。在比较这5次之后,最小数到达a[0]。 当j=1时,i = 5,4,3,2。在比较4次之后次小的一个数到达了a[1]。这时a[1]就不必再与a[0]进行比较了。 当j=2时,i=5,4,3;当j=3时,i=5,4;当j=4时,i=5。 算法设计 定义以下 3 个变量: n:待排序的数的个数 j:扫描遍数,j = 0, 1, 2, …, n-2 i:第 j 遍扫描中待比较元素的下标,即 a[i]与a[i-1]比,其中i = n-1, n-2,…, j+1 算法设计 1. 将待排序的数据放入数组中; 2. 置 j 为 0; 3. 让 i 从 n-1 到 j+1,比较 a[i] 与 a[i-1], 如果 a[i] = a[i-1],位置不动; 如果 a[i] a[i-1],位置要进行交换,即 temp=a[i]; a[i]=a[i-1]; a[i-1]=temp; 4. 让 j = j+1;如果 j = n-2, 那么返回3; 否则,转到5; 5. 输出排序结果。 二维数组 定义: 类型说明符 数组名 [常量表达式] [常量表达式] ; 例如: float a[3][4];

文档评论(0)

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

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

1亿VIP精品文档

相关文档