c++课件ppt第6章

c++课件ppt第6章

ID:44195782

大小:1.13 MB

页数:32页

时间:2019-10-19

c++课件ppt第6章_第1页
c++课件ppt第6章_第2页
c++课件ppt第6章_第3页
c++课件ppt第6章_第4页
c++课件ppt第6章_第5页
资源描述:

《c++课件ppt第6章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第6章数组西安电子科技大学C语言程序设计1第6章数组内容提要:6.1数组的基本概念6.2一维数组6.3二维数组6.4字符数组2021/7/1726.1数组的基本概念计算机处理数据时,经常出现数据是用某种有序的形式进行组织的情况。比如:按学号排列的成绩表、线性方程组的系数矩阵。这些数据共同的特点:①由若干分量组成②诸分量具有相同的数据类型③诸分量按一定的顺序排列为了方便地使用这些数据,C语言提供了一种构造数据类型:数组。数组:按一定顺序排列的具有相同类型的数据的集合。用数组名和下标来唯一地确定数组中的元素。2021/7/1736.2

2、一维数组例如:inta[10];(√)floatscore[5];(√)inta[n];(×)C语言不允许定义动态数组,即不能用变量来定义数组的长度。6.2.1一维数组的定义数据类型数组名[常量表达式];合法标识符表示元素的数据类型[]:下标运算符优先级(1)不能用()表示元素个数必须是正的整型常量表达式2021/7/1746.2.2一维数组在内存的存放数组下标从0开始。一维数组的元素在内存里按下标递增的顺序连续存放。数组名代表数组的首地址,即score的值与score[0]的地址值相同。低地址高地址score[0]score[1

3、]score[2]score[3]score[4]floatscore[5];2021/7/1756.2.3一维数组的引用数组必须先定义后使用C语言规定只能逐个引用数组元素,而不能一次引用整个数组。引用数组元素的一般形式:数组名[下标表达式]例如:inta[10];scanf("%d",&a[10]);(×)/*下标越界*/C编译系统不做越界检查,不给错误提示。大家要格外注意!下标是整型表达式数组元素与同类型的变量使用方法相同下标的范围为0~N-1(N为数组的长度)数组应配合循环使用2021/7/1766.2.4一维数组的初始化1

4、.在定义数组时对数组全部元素赋初值。例如:inta[5]={0,1,2,3,4};2.只给部分数组元素赋初值例如:inta[5]={1,2,3};只给前几个元素赋值,其余元素初值为0。3.对全部元素赋初值时,可以不指定长度。例如:inta[]={0,1,2,3,4};自动定义a数组长度为5。4.当初值的个数多于数组元素的个数时,编译出错例如:inta[5]={0,1,2,3,4,5};2021/7/1776-1求解Fibonacci数列的前20个数,其规律是F1=1,F2=1,Fn=Fn-1+Fn-26.2.5一维数组的应用举例v

5、oidmain(){inti;longintf1,f2;f1=1;f2=1;printf(“%12d%12d”,f1,f2);for(i=2;i<=10;i++){f1=f1+f2;f2=f2+f1;printf(“%12d%12d”,f1,f2);if(i%2==0)printf(“”);}}voidmain(){inti;longintf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%4==0)printf(“”);printf

6、(“%12d”,f[i]);}}算法复杂少占内存算法简单多占内存2021/7/1786.2.5一维数组的应用举例6-2冒泡法排序(从小到大)。以6个数:3、7、5、6、8、0为例。冒泡法的思路:将相邻的两个数比较,将小的交换到前头。经第一趟排序(共5次比较),6个数中的最大数8沉底,小数浮起。375680开始356708(一)356078(二)350678(三)305678(四)035678(五)经第二趟排序(共4次比较),得到次大数7排在倒数第二位置。035678结果如此进行下去,可以推知,6个数要比较5趟。如果有n个数,则要进

7、行n-1趟比较,在第i趟中,要进行n-i次两两比较(因为已有i-1个数排好序)。2021/7/179冒泡法排序(续)for(i=0;ia[j+1]TFa[j]与a[j+1]交换输出a[0]~a[n-1]由前面分析可知:★要排序的数必须放入数组中★用二重循环控制排序过程外循环i控制比较趟数(n-1趟)内循环j控制一趟比较的次数(n-i次)2021/7/1710#defineN6voidmain(){inta[N];inti,j,t

8、;for(i=0;ia[j+1]){t=a[j];a[j]=

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

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

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