C语言 数组课件.ppt

C语言 数组课件.ppt

ID:57011714

大小:110.00 KB

页数:18页

时间:2020-07-26

C语言   数组课件.ppt_第1页
C语言   数组课件.ppt_第2页
C语言   数组课件.ppt_第3页
C语言   数组课件.ppt_第4页
C语言   数组课件.ppt_第5页
资源描述:

《C语言 数组课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章数组【数组=组数=若干个数存放在一起】※一维数组的定义、初始化、元素的引用【向量】※二维数组的定义、初始化、元素的引用【矩阵】※字符型数组的使用【存放字符串】※处理字符串的系统函数7.1一维数组的定义与引用【主要用于存放向量】一、一维数组定义方法【格式】[存储类型符]数据类型符数组名[长度],...;其中:存储类型符以后再介绍,可以省略。数据类型符可以是整型(6种)、实型(2种)、字符型(1种)等。数组名是用户任取的标识符。长度是一个常量表达式,一般为整型。【注】常量表达式是由常量(包括符号常量)和运算符组成的表达式。【功能】定义具有“长度”个数组

2、元素的一维数组。其中每个数组元素都可以当成该类型的变量单独使用。1二、一维数组元素的引用【格式】数组名[下标]其中:数组名必须是已经定义过的一维数组名;下标是整型表达式,其值是0~长度-1(下标超出范围,语法正确、结果错)【功能】引用某个已定义的一维数组的元素,可以当成该类型的变量来使用。三、一维数组的初始化【格式】[存储类型符]数据类型符数组名[长度]={初值表},...;其中:存储类型符、数据类型符、数组名、长度同前。初值表有下列几种:(1)给所有元素赋初值:{初值0,初值1,...,初值长度-1}(注:长度可省略)(2)给前面若干个元素赋初值:{初

3、值0,初值1,...,初值k}此时,所有未赋初值的元素均获得零值,整型为0、实型为0.0、字符型为''。(3)给所有元素赋零值:static数据类型符数组名[长度],...;【static是存储类型苻】【功能】将初值表中的初值依次赋予元素“数组名[0]”、“数组名[1]”、...。【例一】inta[3+7],b[1];定义名为a和b的整型一维数组,a有10个元素:a[0]、a[1]、...、a[9];b数组只有一个元素b[0]。均无初值。chars[4]={'1','2','3','4'};定义名为s的、长度为4的一维字符型数组。4个元素均有初值:s

4、[0]='1'、s[1]='2'、s[2]='3'、s[3]='4'。chars[]={'1','2','3','4'};同上。省略了数组长度,长度为4。floatf[10]={1.0,2.0};定义名为f、长度为10的一维单精度型数组。其中f[0]初值为1.0,f[1]的初值为2.0,其余均为0.0。staticshortk[10];定义名为k、长度为10短整型一维数组,初值均为0。2四、一维数组的程序设计例【例一】求菲波拉契序列的前20项。算法:菲波拉契序列的定义如下:f(1)=1、f(2)=1、f(n)=f(n-2)+f(n-1),n>2。数据结构

5、:用一维整型数组f[20]来存放序列的前20项的值,n为整型变量。程序:#include"stdio.h"voidmain(){intf[20]={1,1},n;for(n=2;n<20;n++)f[n]=f[n-2]+f[n-1];for(n=0;n<20;n++)printf("%d,",f[n]);printf("");}【例二】对存放在一维数组中的10个整数按照从小到大的顺序重新排列。算法:教材中介绍的方法实际上是“沉降排序法”,下面我们介绍真正的“冒泡排序法”。理解算法:设有5个整数(5、3、4、1、2),冒泡排序法的过程如下:555511

6、1111133315552222441333255331144423335422222444445第1轮第2轮第3轮第4轮结束比较4次比较3次比较2次比较1次自下向上,每次比较相邻两数,小者调上【注:轮数+次数=个数】3算法总结:对n个数的冒泡排序法如下:第1轮:从下向上,相邻两数比较,小者调上。一共进行n-1次(j=n,n-1,...,2)。第2轮:从下向上,相邻两数比较,小者调上。一共进行n-2次(j=n,n-1,...,3)。...第k轮:从下向上,相邻两数比较,小者调上。一共进行n-k次(j=n,n-1,...,k+1)。...第n-1轮:从下向

7、上,相邻两数比较,小者调上。一共进行1次(j=n)。数据结构:假定10个整数存放在一维数组a[11]中。程序:#includevoidmain(){inta[11],k,j,m;for(m=1;m<11;m++)/*输入一维数组标准程序段*/scanf("%d",&a[m]);for(k=1;k<=9;k++)for(j=10;j>=k+1;j--)if(a[j]

8、}【问题】如果数组定义为a[10],如何修改程序?【11、1、9、10均减1、k

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

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

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