高级语言和序设计-(11)第6章 (1)一维数组.ppt

高级语言和序设计-(11)第6章 (1)一维数组.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排序过程: (1)比较第一个数与第二个数,若为逆序a[0]a[1],则交换;然 后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止——第一趟冒泡排序,结果最大的数被安置在 最后一个元素位置上 (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在 第n-1个元素位置 (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束 * C语言课件 制作人 杨财英 * 第4章 数 组 (1) 第4章 数 组 数组的概念 一维数组定义和引用 二维数组定义和引用 字符数组 举例 √ √ √ 问题:给一组数排序,这组数该如何存放呢? ??? 这些数据如何存放才便于排序 8 2 9 4 5 6 3 7 6 1 7 1 8 8 8 8 8 8 8 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 8 8 8 8 8 8 8 8 8 8 这便是本章所要解决的问题 用基本数据类型可以解决所有问题吗? 数组的概念 例如:对学生的外语成绩按由高到低的顺序进行排序 3 名: stu1,stu2,stu3 110 名: stu1,stu2,……stu110 ? 数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。 数组属于构造类型数据。 int stud[110] int stud1,stud2,……stud110 一维数组的定义 类型说明符 数组名[常量表达式]; 一维数组定义和引用 表示元素的个数, 必须是大于0的整数 例: int a[10]; 表示: a 为整型数组名, 有10个元素:a[0],a[1]... ...a[9] a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a 只到9 编译时分配连续内存 内存字节数=数组维数 * sizeof(元素数据类型) ?说明: 数组名应符合标识符的书写规定。 数组名不能与其它变量名相同。 例如:int a,a[10]; 数组必须先定义,后使用。 数组元素的下标从0开始算起。 对于 int a[10]; 有效元素从a[0]~ a[9] 定义数组时,数组名后面是用方括号括起来的符号常数或常量表达式,不能在方括号中用变量来表示元素的个数。 int a(10); main() { int a[5],b[3+2]; …… } main() { int n=5; int a[n]; …… } ( 不能使用圆括号) 一维数组的引用 数组名[下标] 下标只能为整型类型:常量、变量或表达式。使用数组的关键在于控制其下标变化。 例如:a[5],a[i],a[i+j],a[i++] 均合法 在C语言中只能逐个地使用下标变量,而不能一次引用整个数组。 for(i=0;i10;i++) printf(%d,a[i]); printf(%d,a); 改为 2、可以只给一部分元素赋初值,未被赋值的元素值默认为 0 1、在定义数组时对数组元素赋以初值 int a[10]={0,1,2,3,4,5,6,7,8,9}; 等价于: int a[10]; a[0]=0; a[1]=1; a[2]=2…a[9]=9; int a[10]={0,1,2,3,4}; 此时 a[5] ~a[9] 均为0 ?一维数组的初始化 a[10]=? 4、对全部数组元素赋初值时,可以不指定数组长度,编译系统根据初值个数确定数组大小 3、如果数组中的元素初值均为0,可以写成 int a[10]={0,0,0,0,0,0,0,0,0,0}; ? int a[10]={0}; ? int a[ ]={1,2,3,4,5}; int a[5]={1,2,3,4,5}; 等价于 #include stdio.h main( ) { int i, a[10]; /*用循环给数组 a 的每一个元素赋值*/ for(i=0 ; i=9 ; i++) a[i]=i; /*逆序输出数组 a 的每一个元素值*/ for(i=9 ; i=0 ; i--) printf(“%d ”, a[i]); } 例1: 运行结果: 9 8 7

文档评论(0)

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

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

1亿VIP精品文档

相关文档