第六章 数组教学课件.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第六章 数组教学课件.pptx》由会员分享,可在线阅读,更多相关《第六章 数组教学课件.pptx(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 数组目录CONTENTS数组的概念一维数组二维数组字符数组与字符串6.16.26.36.4 数组的概念6.1 数组的概念01可以可以对大量的同类型的数据进行处理对大量的同类型的数据进行处理。数组数组:若干个具有相同数据类型的数据的有序集合。:若干个具有相同数据类型的数据的有序集合。数组元素数组元素:数组中的每一个数据称为数组元素。数组中的:数组中的每一个数据称为数组元素。数组中的每一个数组元素具有相同的名称,不同的下标,可以作为每一个数组元素具有相同的名称,不同的下标,可以作为单个变量使用,所以也称为下标变量。单个变量使用,所以也称为下标变量。数组的下标数组的下标:是数组元素位置的一个
2、索引或指示。:是数组元素位置的一个索引或指示。数组的概念01数组的类型数组的类型:数值数组、字符数组、指针数组、结构数组:数值数组、字符数组、指针数组、结构数组等。等。数组的维数数组的维数:数组元素下标的个数。根据数组的维数可以:数组元素下标的个数。根据数组的维数可以将数组分为一维、二维、多维数组。将数组分为一维、二维、多维数组。数组的概念01一维数组6.2 一维数组的定义一维数组的初始化一维数组元素的引用一维数组的存储一维数组的应用一维数组的定义01一般一般形式形式:类型说明符类型说明符 数组名数组名常量表达式常量表达式说明说明:u 类型说明符:类型说明符:每个元素的类型,可以每个元素的类型
3、,可以是基本数据类型,也可以是构造是基本数据类型,也可以是构造数据类型、数据类型、指针;指针;u 数组名:数组名:数组的名字,数组的名字,命名规则遵循标识符命名命名规则遵循标识符命名规则;规则;u 常量表达式:常量表达式:表示数组中所包含的元素的个数,即数组的表示数组中所包含的元素的个数,即数组的长度;长度;u 相同相同类型的数组和变量可以在同一个类型说明符下一起说明,互相间类型的数组和变量可以在同一个类型说明符下一起说明,互相间用用”,”隔开;隔开;u 数组名不能与其它变量名数组名不能与其它变量名相同。相同。如:int a10; /*定义一个整型数组a,它有10个元素*/double b20
4、; /*定义一个双精度型数组b,它有20个元素*/例1:int a5;int是类型说明符,数组元素数据类型为int型;a是数组名;5是常量表达式,数组元素的个数为5。例2:#define M 10char abcM-5;数组类型 数组名 数组元素个数charabc510一维数组的定义0111数组定义时下标要求:一维数组的定义01(1)不能越界;(2)只能是常量表达式;(3)首地址从0开始,n-1结束一维数组元素的引用02数组元素的一般形式数组元素的一般形式数组名数组名下标下标 下标表示了元素在数组中的顺序号,只能为整型常量或整下标表示了元素在数组中的顺序号,只能为整型常量或整型表达式。语言中,
5、规定下标从型表达式。语言中,规定下标从0开始,对下标的上界未作开始,对下标的上界未作规定。例如,规定。例如,a5,ai+j,ai+都是合法的数组元素。都是合法的数组元素。(1)数组元素通常称为下标变量;(2)必须先定义才能使用下标变量;(3)只能逐个使用数组元素,不能一次引用整个数组。13一维数组元素的引用02例3: 下面程序输出结果是多少?14一维数组元素的引用02#include int main() int i,a10;for(i=0;i=0;i-) printf(“%d”,ai);return 0;输出结果: 987654321015例4:程序输出结果是多少?一维数组元素的引用02#i
6、nclude#define M 10int main()char abcM-5; int i; for(i=0;iM-5;i+) abci=A;printf(char abcM-5=);for(i=0;iM-6;i+) printf(%d,abci);printf(%dn,abcM-6);return 0;char abcM-5=65,65,65,65,65一维数组的初始化03概念:概念:在数组定义时给数组元素赋予初值。在数组定义时给数组元素赋予初值。一般一般形式形式:类型说明符类型说明符 数组名数组名常量表达式常量表达式=值值,值值,值值;例如:例如: int a10= 0,1,2,3,4,
7、5,6,7,8,9 ; 相当于相当于 a0=0;a1=1.a9=9;数组初始化是在编译阶段进行的。这样将减数组初始化是在编译阶段进行的。这样将减少运行时间,提高效率。少运行时间,提高效率。说说 明明1、可以、可以只给部分元素赋初值。只给部分元素赋初值。例如:例如:int a10=0,1,2,3,4; 表示只给表示只给a0a45个元素赋值,而后个元素赋值,而后5个元素自动赋个元素自动赋0值值。2、只能给元素逐个赋值,不能给数组整体赋值。、只能给元素逐个赋值,不能给数组整体赋值。 例如:给十个元素全部赋例如:给十个元素全部赋1值,只能写为:值,只能写为: int a10=1,1,1,1,1,1,1
8、,1,1,1;而不能写为:而不能写为: int a10=1;3、如、如给全部元素赋值,则在数组说明中,给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。可以不给出数组元素的个数。例如:例如: int a5=1,2,3,4,5;可写为:可写为: int a=1,2,3,4,5;4、当、当数组指定的元素个数小于初值的个数时,作语法错误处理。数组指定的元素个数小于初值的个数时,作语法错误处理。例如:例如:int a4=1,2,3,4,5; 是不合法的是不合法的。一维数组的初始化03一维数组的存储0402例如:例如: int a10; 空间为空间为 10*sizeof(int)。 doubl
9、e b20; 空间为空间为 20*sizeof(double)。 一维数组的各元素按下标的顺序依次存储在一片连续的存储空间中。一维数组的各元素按下标的顺序依次存储在一片连续的存储空间中。空间的大小与数组类型有关,为空间的大小与数组类型有关,为元素的个数乘以每一个元素所占的空间。元素的个数乘以每一个元素所占的空间。例5: 用数组求Fibonacci数列的前20项(每行输出5个数)。一维数组的应用05#include #include int main()int i;int f20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%5=0) p
10、rintf(n);printf(%6d,fi);system(pause);return 0; 信息科学与工程学院例6:输入1000个学生的成绩,输出高出平均成绩的成绩。#include #define SNUM 1000int main()int i,scoreSNUM,sum=0;float ave;printf(请输入学生成绩:n);for(i=0;iSNUM;i+)scanf(%d,&scorei);sum+=scorei;ave=(float)sum/SNUM;for(i=0;iave)printf(%d ,scorei);return 0;例7:输入10个整数,按从大到小的顺序输出
11、。排序算法很多,如:比较排序法、选择排序法、冒泡排序法、快速排序法、插入排序法等。 比较排序法:比较排序法的基本思路是以第一个数据作为基点,将后面的所有数据与它进行比较,若不满足大小顺序关系就交换它们;再以第二个数据作为基点,将后面的所有数据与它进行比较,若不满足大小顺序关系就交换它们;.,最后以倒数第二个数据作为基点,将后面的数据与它进行比较,若不满足大小顺序关系就交换它们。 选择排序法:选择排序法的基本思路是以第一个数据作为基点,找出基点及其后面数据中最小的数据,将其与基点位置的数据交换;再以第二个数据作为基点,找出基点及其后面数据中最小的数据,将其与基点位置的数据交换;.最后以倒数第二个
12、数据作为基点,找出基点及其后面数据中最小的数据,将其与基点位置的数据交换。 冒泡排序法:冒泡排序法的基本思路是将相邻的两个数比较,把小的调换到前面。一维数组的应用05下面是比较排序算法的程序。#include#define M 10int main() int i,j,k,aM;printf(请输入10个整数:n);for(i=0;iM;i+) /*通过for循环语句对数组a的各个元素赋值*/printf(请输入第%d个数:,i+1);scanf(%d,&ai); printf(排序前的数据是:n);for(i=0;iM;i+)printf(%d ,ai);for(i=0;iM-1;i+)fo
13、r(j=i+1;jM;j+)if(aiaj)k=ai;ai=aj;aj=k;printf(n排序后的数据是:n);for(i=0;iM;i+)printf(%d ,ai);return 0; 一维数组的应用0523例8、将数字09存入一个整型数组a中,并输出。#include int main() int a10; int i; for(i=0;i10;i+) ai=i; printf(%d ,ai); printf(n); return 0;思考:将程序改写为先依次写入数字,再依次读出一维数组的应用05二维数组6.3 二维数组的定义二维数组的初始化二维数组元素的引用二维数组的存储二维数组的应
14、用01例如:例如: int a34; 定义了定义了一个三行四列的数组,数组名为一个三行四列的数组,数组名为a,其下标变量,其下标变量的类型为整型。该数组的下标变量共有的类型为整型。该数组的下标变量共有34个。个。二维数组的定义一般形式一般形式类型说明符类型说明符 数组名数组名常量表达式常量表达式1常量表达式常量表达式2例如:例如: int a23; 其行下标最大值为其行下标最大值为1,列元素下标最大值为,列元素下标最大值为2。其数组元。其数组元素为:素为:a00、a01、a02、a10、a11、a12。二维数组元素的引用数组元素的一般形式数组元素的一般形式数组名数组名下标下标1 下标下标2;
15、下标下标1(行标)、下标(行标)、下标2(列标)可以是整型常量或整型(列标)可以是整型常量或整型表达式。表达式。02例如:例如:int a45;其元素的存储顺序为:其元素的存储顺序为:二维数组元素的存储 C语言规定,二维数组中的元素在存储时要先存放第一行的数据,再语言规定,二维数组中的元素在存储时要先存放第一行的数据,再存放第二行的数据等等,每行数据按下标规定的顺序由小到大的存放。存放第二行的数据等等,每行数据按下标规定的顺序由小到大的存放。032022年4月18日星期一信息科学与工程学院二维数组的初始化1、分行、分行给多维数组赋值。给多维数组赋值。int s34=1,2,3,4,5,6,7,
16、8,9,10,11,12;2、按、按行连续赋初值。行连续赋初值。int s34=1,2,3,4,5,6,7,8,9,10,11,12;3、对、对全部元素赋值,可以省略第一维的长度。全部元素赋值,可以省略第一维的长度。int s4=1,2,3,4,5,6,7,8,9,10,11,12;4、可以、可以只对部分元素赋初值,未赋值的元素自动取只对部分元素赋初值,未赋值的元素自动取0值。值。int s 4=1,2,5,9,10;04二维数组的应用例例7 7:从从键盘上输入一个键盘上输入一个3 3行行3 3列矩阵的各个元素的值列矩阵的各个元素的值, , 然后输出主对角线元素之然后输出主对角线元素之和和。0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 数组教学课件 第六 数组 教学 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内