006-高级语言程序设计C 第六章,高级语言程序设计_C语言(第六章 数组.ppt

《高级语言程序设计_C语言(第六章 数组.ppt》由会员分享,可在线阅读,更多相关《高级语言程序设计_C语言(第六章 数组.ppt(30页珍藏版)》请在人人文库网上搜索。

1、第六章 数 组,C语言程序设计,6.1 一维数组 6.2 二维数组 6.3 字符数组与字符串 6.4 程序举例 ,本次课的主要内容,重点,如何实现三个数比较大小? 可采用相关排序算法,程序比较容易实现 思考: 假如需要实现四个数,或者更多的数比较大小?怎么进行程序设计呢?,定义若干个变量,程序繁复,容易出错,体现不出各数据间的关系,同时可能带来阅读和理解的困难,迄今为止,我们使用的都是属于基本类型(整型、字符型、实型)的数据,C语言还提供了构造类型的数据,它们有:数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组成的,因此有的书称它们为“导出类型”。 本章只介绍数组。数。

2、组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素。有关数组的概念和其他高级语言中介绍的是相同的,不再赘述。,C语言的数据类型,数据类型,基本类型,构造类型,指针类型,空类型,整型,字符型,浮点型,单精度型,双精度型,枚举类型,数组类型,结构体类型,共用体类型,一维数组的定义 一维数组的定义方式为 类型说明符 数组名常量表达式; 例如: int a10; 它表示数组名为a,此数组有10个元素。,6.1 一维数组,需要注意的几点,1)常量表达式表示元素的个数,即数组长度。例如,在a10中,10表示a数组有10个元素,下标从0开始,这10个。

3、元素是,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9。注意不能使用数组元素a10。 2)常量表达式中可以包括常量和符号常量,不能包含变量。也就是说,C不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的: int n; scanf(%d,,数组必须先定义,然后使用。 C语言规定只能逐个引用数组元素而不能一次引用整个数组。 数组元素的表示形式为 数组名下标 下标可以是整型常量或整型表达式。例如: a0=a5+a7-a2*3,6.1.2 一维数组元素的引用,对数组元素的初始化可以用以下方法实现: (1) 在定义数组时对数组元素赋以初。

4、值。例如: int a10=0,1,2,3,4,5,6,7,8,9; 将数组元素的初值依次放在一对花括弧内。经过上面的定义和初始化之后,a0=0,a1=1,a2=2,a3=3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9。,6.1.3 一维数组的初始化,二维数组的定义 二维数组的定义方式为 类型说明符 数组名常量表达式常量表达式 ; 例如: 例如:float a34,b510; 定义a为34(3行4列)的数组,b为510(5行10列)的数组。,6.2 二维数组,C语言对二维数组采用这样的定义方式,使我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。 例如,可以。

5、把a看作是一个一维数组,它有3个元素:a0、a1、a2,每个元素又是一个包含4个元素的一维数组。,二维数组的引用 二维数组的定义方式为 类型说明符 数组名常量表达式常量表达式 ; 例如: 例如:float a34,b510; 定义a为34(3行4列)的数组,b为510(5行10列)的数组。,二维数组的初始化 (1) 分行给二维数组赋初值。如 int a34=1,2,3,4,5,6,7,8,9,10,11,12;,6.4 程序举例,定义一个数组a10,实现a0a9的值为09,然后逆序输出。,程序的思路:如何定义数组,如何实现数组赋值 int a10=0,1,2,3,4,5,6,7,8,9;,?,。

6、6.4 程序举例,3*4的矩阵,编程求出其中值最大的那个元素的值,以及其所在的行号和列号。,程序的思路:请问定义的二维数组有几行几列。 存放顺序是怎么样的。,?,如何找出最大的数,访问行与列都可以采用循环,6.4 程序举例,输入n个整数,输出其升序排序的结果。,冒泡法的思路是:将相邻两个数比较,将小的调到前头。,第一轮,若有6个数。第一次将8和9对调,第二次将第2和第3个数(9和5)对调如此共进行5次,得到854209的顺序,可以看到:最大的数9已“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已向上“浮起”一个位置。经第一轮(共5次)后,已得到最大的数。,然后进行第二轮比较,对余下的。

7、前面5个数按上法进行比较,经过4次比较,得到次大的数8。如此进行下去。可以推知,对6个数要比较5趟,才能使6个数按大小顺序排列。,第二轮,如果有n个数,则要进行n-1轮比较。在第1轮比较中要进行n-1次两两比较,在第j轮比较中要进行n-j次两两比较。,得到什么规律,?,for(i=0;iN-1;i+) /10个元素循环9轮 for(j=0;jN-i-1;j+) /每轮比较10-i-1次 if(aj+1aj) /若后面的元素比前面元素小,则交换 temp=aj; aj=aj+1; aj+1=temp; ,伪代码描述算法如下,6.4 程序举例,某电影院为了方便观众购票,及时反映上座情况,用矩阵形式显示座位卖出情况,要求计算上座率。,?,程序的思路:电影院的座位位置由几排几座两个数据确定,因此用二维数组来处理比较合理;每个座位卖出情况有两个状态:卖出和未卖,分别用1和0两个数字模拟,因此可以定义一个二维整型数组,数组元素取值为1或0,来保存上座情况;为了让观众直观看到上座情况,按行输出二维数组;上座率=卖出座位数/总座位数,卖出座位数=二维数组元素值为1的个数,总座位数=二维数组元素总数。,学生成绩管理系统中数组如何运用?,封面与菜单设计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值