《c程序设计实例教程》中ppt

《c程序设计实例教程》中ppt

ID:40007782

大小:949.00 KB

页数:199页

时间:2019-07-17

《c程序设计实例教程》中ppt_第1页
《c程序设计实例教程》中ppt_第2页
《c程序设计实例教程》中ppt_第3页
《c程序设计实例教程》中ppt_第4页
《c程序设计实例教程》中ppt_第5页
资源描述:

《《c程序设计实例教程》中ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《C程序设计实例教程》中梁立第4章数据组织 第5章文件 第6章函数与指针第4章数据组织4.1数组数组是一组同类型数据的有序集合。数组在内存中占有一片连续的存储空间,但可以随机地访问数组中的任意一个元素,即数组是顺序存放、随机访问的。在一片连续的内存空间中,每一个元素占用的空间大小相同(字节数相同),只要知道这片空间的起始地址就可以取得任何一个元素的地址,也就很容易取或存某个元素的值。4.1.1一维数组一维数组与内存空间的组织形式一样,是线性排列的,每一个数据元素用一个下标索引。【例4-1】输入10个整数,再逆序存放,最后输出。【分析】①如果使用简单变量

2、,对于10个数,需要定义10个简单变量,如果是100个或更多数据呢?显然,使用简单变量是不现实的。②如果一组数据中,每个数据元素的数据类型相同,就可以使用“数组”。③我们可以用第一个数与最后一个数交换,第二个数与倒数第二个数交换……依次类推。如图4.1(a)是存放的数据,其中下标是元素的位置(从0开始),图4.1(b)用变量i指向左边的元素,用变量j指向右边的元素,把第i个元素与第j个元素交换,然后i增加1,j减少1,直到i>=j结束(即循环条件为i

3、13712345678i=0j=9图4.1(b)用变量i,j分别指向要交换的两个元素,交换结束i增1,j减1图4.1数据存放和逆序操作【说明】①数组是一种构造类型的数据,在使用数组之前必须先定义。一维数组的定义格式:数据类型数组名[数组长度]数组中每一个元素的数据类型是一样的;数组名必须符合程序设计语言的标识符的命名规则(例2-1的说明③);数组长度是数组中数据元素的个数,只能是常量表达式。数组在内存中占有一片连续的存储空间,数组名就是这一片空间的首地址。②在使用数组时,不能使用数组的整体,只能使用数组中的个体,即数组中的每个元素,数组元素的性质和使用

4、方法与简单变量一样。③使用数组元素:是通过使用下标来完成的,如程序中a[i],下标是整数表达式,是可以变化的。C语言规定数组的下标是从0开始的,因此,最大的下标是“数组长度”-1,如程序中用了i=0,j=N-1,这两个整数正好是数组a的第一个与最后一个元素的下标。超出这个下标范围是非常危险的(因为用到了别人的内存空间!)④初始化:在定义数组时,也可以同时对数组进行初始化,初始值依次写在{…}中,用逗号隔开。如intX[100]={100,102,0,105,102}说明了数组X的前5个元素X[0]、X[1]、X[2]、X[3]、X[4]依次为100、1

5、02、0、105、102,而其它元素均为0。如果要把数组X的全部元素都初始化为0,则在定义时写成intX[100]={0}。程序中定义了inta[N]={4,3,8,10,5,2,9,6,13,7}就意味着分配了一片连续的内存空间存放N个元素(注意:定义数组时,长度必须是常数;如果不给长度,则长度是初始数据个数):4381052961370123456789数组a图4.2数组a的存储与初始化⑤如果程序中不是用初始化的方法得到数据,而需要用键盘输入,那么应该一个一个的数据输入。在数组中,用循环实现:for(i=0;i

6、a[i]);对每一个元素a[i]就如同前面章节中使用的简单变量一样。注意:scanf("%d",&a)是错误的用法。⑥一旦有了数组的概念,就可以处理大批量的数据了,而这是用简单变量几乎无法想象的事情。但大量的数据用键盘输入,在上机调试程序时非常不方便,利用随机函数产生数据是提倡的方法(参见例3-15)。【例4-2】交换两块数据。如图4.3,把前4个元素与后6个元素整体交换。【分析】解题方法很多,如再设一个同样大小的数组作为过渡。本例题的做法是:先将两块数据分别逆序(例4-1),再将它们整体逆序即可。这样做有两个好处:一是不需要额外增加存储空间,二是反复

7、使用三次“逆序”。因此,我们将逆序操作定义成一个函数,调用三次即可完成。(a)交换前438105296137(c)整体逆序529613743810图4.3数据块交换(b)两块分别逆序108347136925【说明】①本程序是交换两块数据很好的方法。②比较printf中使用的格式%3d和%-3d的区别。③程序中调用了三次函数invert,每次调用改变了部分参数即可,这也是函数的优点之一。④已经看到,无论是输出还是逆序数组元素,都必须对数组元素一个一个的处理。处理这些数据最关键的问题是确定元素的下标。【例4-3】随机产生10个整数,用冒泡排序法从小到大排序

8、。【分析】随机产生数据(例3-15)相当于输入数据,是为处理(排序)作准备的。为了检验排序的结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。