C语言-数组-PPT课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言-数组-PPT课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数组 PPT 课件
- 资源描述:
-
1、第六章 数组第六章 数组第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计数据类型数据类型基本数据类型基本数据类型构造数据类型构造数据类型intfloatcharstring intshort intlong int数组指针结构体共用体double第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计 当变量个数少,且彼此独立时,采用变量先定义,后当变量个数少,且彼此独立时,采用变量先定义,后赋值,再使用。如:赋值,再使用。如:int a,b,c ; a = 5; b=10;c=23;
2、printf(“%d,%d,%d”,a,b,c); 当变量个数比较多,并且有内在的关系时,例如当变量个数比较多,并且有内在的关系时,例如 :全:全班有班有3030个人,每人一个成绩个人,每人一个成绩 如:如:int int c c1,1,c c2,2,,c c30 30 (可以利用数组可以利用数组) 数组是怎么构成的?数组是怎么构成的? 一组有序数据的集合一组有序数据的集合,各个元素属于各个元素属于同一个类型同一个类型,用用统一的名称统一的名称标识这一组数标识这一组数,用用下标唯一下标唯一地确定这组数中的每一个值,这就构成地确定这组数中的每一个值,这就构成了了“数组数组”。数组的基本概念数组的
3、基本概念:有限个:有限个相同数据类型相同数据类型的数据分量的有序集合。的数据分量的有序集合。第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计一一 、一维数组的定义、一维数组的定义格式:格式: 类型类型 标识符标识符 长度长度 所有元素为所有元素为同一类型同一类型变量名,变量名,即数组名即数组名数组中所含数组中所含元素的个数元素的个数int a10;由由10个整数个整数组成的数组,共同拥组成的数组,共同拥有数组名有数组名 2、数组长度必须是、数组长度必须是整型量整型量int a2*3说明:说明:1、用、用方括号方括号将数组的将数组的长度长
4、度括起来括起来3、数组长度也可以用、数组长度也可以用常量表达式常量表达式4、不能对长度做、不能对长度做动态定义动态定义,或者,或者不定义长度不定义长度如:如:int n;n=10; int an; 6 6.1 .1 一维数组的定义和使用一维数组的定义和使用例如:例如:int a5;int a5;第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计数组的三要素:数组的三要素:(1)相同的数据类型()相同的数据类型(定义数组时规定定义数组时规定)(2)有限的成员个数)有限的成员个数 (定义数组时规定定义数组时规定)(3)彼此有序的排列)彼此有序
5、的排列 (引用数组元素时的下标引用数组元素时的下标)int a5; a0=1;a1=2;a2=3;a3=4;a4=5;6 6.1 .1 一维数组的定义和使用一维数组的定义和使用第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计 数据类型数据类型 数组名数组名 常量表达式常量表达式 初始化数据;初始化数据;格式:格式:1.定义数组时,对定义数组时,对全部元素全部元素赋值赋值 int a5=1,2,3,4,5;2. 对对部分元素部分元素赋值赋值 float x5 = 1.9 ,2.0 ;x0=1.9;x1=2.0;3.3.若要对数组的若要对数
6、组的全部元素初始化全部元素初始化,则,则可省略可省略数组的数组的长度长度 int a = 1,2,3,4;二、二、 一维数组的初始化一维数组的初始化6 6.1 .1 一维数组的定义和使用一维数组的定义和使用用用 包括所有初值,包括所有初值,用用逗号逗号分隔各数值分隔各数值,且初值的,且初值的个数个数不能大于数组不能大于数组长度。长度。按按顺序顺序给前给前2个元素赋值个元素赋值,其余元素为均为其余元素为均为 0数组数组长度长度=元素的元素的个数个数第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计三三 、一维数组元素的引用、一维数组元素的引
7、用1、数组必须先定义,后赋值,再使用、数组必须先定义,后赋值,再使用 2、数组中的元素必须、数组中的元素必须逐一引用逐一引用3、通过通过数组名数组名及其元素的及其元素的下标下标引用引用定义定义: 类型类型 数组名数组名长度长度 如如: int a10引用引用: 数组名数组名下标下标 a0,a1,a9为数组为数组a10中的所有元素中的所有元素(1 1)下标下标表示了元素在数组中的位置表示了元素在数组中的位置(2 2)下标下标可以用表达式可以用表达式 a2*3相当于相当于a6说明说明6 6.1 .1 一维数组的定义和使用一维数组的定义和使用下标范围从下标范围从 0 0 到到长度长度-1-1第六章
8、数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计 例例1:main() int i; int a10 = 1,2,3,4,5,6,7,8,9,10; for(i=0;i10;i+) printf(%3d,ai);运行结果:运行结果:1 2 3 4 5 6 7 8 9 10 6 6.1 .1 一维数组的定义和使用一维数组的定义和使用 int a10; for(i=0;i10;i+) scanf(%d,&ai);通过数组名和下标,通过数组名和下标,引用数组中的每一个元素引用数组中的每一个元素第六章 数组2010年4月21日星期三4月21日星期三教师
9、:赵军富教师:赵军富C 语言程序设计语言程序设计例:有一个数组例:有一个数组, ,内有内有1010个元素个元素, ,求出最小的元素和它的求出最小的元素和它的 下标。下标。71332668153206512int a10a0a i a91.定义两个临时变量定义两个临时变量 min和和 k2.假定第一个元素就是最小的假定第一个元素就是最小的,min=a0,k=03.用用min与数组中的与数组中的每一个每一个元素元素ai比较比较, 若若ai比比min小小, 将将ai赋给赋给min, 同时同时将下标将下标i赋给赋给k, 否则否则,继续比较。继续比较。6 6.1 .1 一维数组的定义和使用一维数组的定义
10、和使用分析:分析:第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计2671332668153206512min=a0i=1i=2i=3i=4i=5i=6i=7i=8i=91326 min=a1 k=133 min和和k的值不变的值不变133203 min和和k的值不变的值不变11 min和和k的值不变的值不变1&min531 min和和k的值不变的值不变 121 min和和k的值不变的值不变651 min和和k的值不变的值不变min=1k=56 6.1 .1 一维数组的定义和使用一维数组的定义和使用第六章 数组2010年4月21日星期三
11、4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计main( ) int i,a10,min,k; for(i=0;i10;i+) scanf ( “%d”,&ai ); min=a0;k=0; for(i=1;iai ) min=ai ; k=i ; printf(“%d,%d”,k,min); 循环输入循环输入10个数个数循环找出最小的循环找出最小的输出最小值和原始下标输出最小值和原始下标第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计例例 1. 将将6个实数由小到大排序。个实数由小到大排序。 5 8 9 4 7
12、25 8 9 4 7 215 8 9 4 7 225 8 9 4 7 234 8 9 5 7 244 8 9 5 7 25第一轮结束:第一轮结束:2 8 9 5 7 42 8 9 5 7 4第一轮第一轮2 4 9 8 7 5第二轮第二轮2 4 5 9 8 7第三轮第三轮2 4 5 7 9 8第四轮第四轮2 4 5 7 8 9第五轮第五轮 结结 果:果:2 4 5 7 8 9算法一:选择排序法算法一:选择排序法选择排序思路选择排序思路:将数组中的每一个元素和其后面所有的元素:将数组中的每一个元素和其后面所有的元素进行比较,如果某一个元素小于该数,将互换位置。进行比较,如果某一个元素小于该数,将互
13、换位置。第一轮开始:第一轮开始:第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计#include main()int a6=5,8,9,4,7,2;int i,j,t;for(i=0;i5;i+) /i为比较的第几轮 for(j=i+1;jaj) t=ai;ai=aj;aj=t; for(i=0;i6;i+) /将比较后的记过输出来 printf(%5d,ai);程序代码一:程序代码一:第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计#include main() int a6=
14、5,8,9,4,7,2,i,j,t,k; /*k为数组的下标为数组的下标 */ for(i=0;i5;i+) /* i循环比较的轮数循环比较的轮数*/ k=i; for(j=i+1;jaj) k=j; /* 记下较小的元素的下标记下较小的元素的下标*/ t=ai; ai=ak; ak=t; /*每轮结束后交换每轮结束后交换*/ for (i=0;i6;i+) printf(a%d=%dn,i,ai); 程序代码二:程序代码二:第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计算法二:算法二: 冒泡排序冒泡排序 冒泡法的思路冒泡法的思路:将
15、相邻两个数比较,如果相邻的两个值是升序排:将相邻两个数比较,如果相邻的两个值是升序排列的,就保持原样,如果是降序排列的,就交换它们的值。(实列的,就保持原样,如果是降序排列的,就交换它们的值。(实质:大的沉下去,小的浮上来)质:大的沉下去,小的浮上来) start: a0 a1 a2 a3 a4 a5 a6 a7 2 57 29 89 42 34 16 1 1 times:2 29 57 42 34 16 1 89 2 times: 2 29 42 34 16 1 57 89 3 times: 2 29 34 16 1 42 57 89 4 times: 2 29 16 1 34 42 57
16、89 5 times: 2 16 1 29 34 42 57 89 6 times: 2 1 16 29 34 42 57 89 7 times: 1 2 16 29 34 42 57 89第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计main()() int a10=2,57,29,89,42,34,16,1; int pass , time , temp,xb; for( pass =1; pass 9; pass +) /* pass是循环比较的趟数是循环比较的趟数*/ for(time =0; time atime+1)/*
17、判断每相邻两个元素下标判断每相邻两个元素下标*/ temp =atime; atime=atime +1;atime +1=temp; for (xb=0; xb10; xb+) printf( “a%d=%d n”, xb, axb ); 程序代码一:程序代码一:第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计 #include #define SIZE 8 main( ) int aSIZE=2,57,29,89,42,34,16,1; int i, pass, hold; clrscr(); for(i=0;i=SIZE-1;i+
18、) printf(%4d, ai); printf(n); for(pass=1;pass=SIZE-1;pass+) /*比较趟数*/ for(i=0;iai+1) hold=ai; ai=ai+1; ai+1=hold; for(i=0;i=SIZE-1;i+) printf(%4d,ai); 程序代码二:程序代码二:第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计6 6.2 .2 二维数组的定义和引用二维数组的定义和引用 当一个一维数组中的每个元素本身又是一个一维数组当一个一维数组中的每个元素本身又是一个一维数组时,该数组构成时,
19、该数组构成“二维数组二维数组” 。一、二维数组的定义一、二维数组的定义 格式:格式:类型类型 标识符标识符长度长度1长度长度2 如:如:int a44a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23a30 a31 a32 a33a0a1a2a3一维数组一维数组a4二维数组二维数组a44第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计说明:说明: 1. 二维数组元素需要二维数组元素需要两个两个下标表示下标表示 例:例:int a44表示数组表示数组a中有中有4行行4列列共共16个数据个数据2.二维
20、数组在存储空间中是按二维数组在存储空间中是按行行优先存储优先存储a00 a01 a02a23.a03第一行第一行a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23a30 a31 a32 a336 6.2 .2 二维数组的定义和引用二维数组的定义和引用第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计二、二维数组的初始化二、二维数组的初始化形式:形式:1、 对对全部元素全部元素赋初值赋初值,分行,各用一个分行,各用一个 。 int a23=1,2,3,4,5,6;2 整体赋值,系统自动分行整体赋值,系
21、统自动分行int a23=1,2,3,4,5,6;1,2,33 对部分元素赋初值,注意区别:对部分元素赋初值,注意区别:(1)int a23=1,2,3; (2) int a23=1,2,3; (3) int a23=0,1,2,3;说明:当为全部元素赋值时,说明:当为全部元素赋值时,一维长度一维长度可省略可省略 如:int a 3=1,2,3,4,5,6;6 6.2 .2 二维数组的定义和引用二维数组的定义和引用第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计三三 、二维数组的引用、二维数组的引用原则原则:逐一引用逐一引用说明:说明:
22、1.数组名数组名下标下标1下标下标2 下标下标1 1从从0 0到长度到长度-1-1 下标下标2 2从从0 0到长度到长度-1-1方法:方法:数组名数组名 N1N2如:如:int a42a00 a01 a10 a11a20 a21 a30 a316 6.2 .2 二维数组的定义和引用二维数组的定义和引用第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计2、若定义、若定义int a34,则对则对a的正确引用是:的正确引用是:A) a 2 4 B) a 1,3 C) a 1+1 0 D) a (2)(1) 1、以下二维数组说明方式中正确的是:、
23、以下二维数组说明方式中正确的是:A) int a3 ; B) float a(3,4);C) double a14; D) float a(3)(4);举例:举例:6 6.2 .2 二维数组的定义和引用二维数组的定义和引用第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计例例1:1:已知已知5 5名学生的四门课程成绩,求每位学生的总成绩,名学生的四门课程成绩,求每位学生的总成绩, 并按二维表格式输出。并按二维表格式输出。姓名姓名语文语文数学数学外语外语政治政治张三张三 91726344李四李四 51627354王五王五 91829384赵
24、六赵六 919210084刘七刘七 61725344程序代码见下页程序代码见下页第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计main() int a54=91,72,63,44,51,62,73,54,91,82,93,84, 91,92,100,84,61,72,53,44; int i,j,s5; for(i=0;i=4;i+) /* 给每个学生求总成绩给每个学生求总成绩*/ si=0; for(j=0;j=3;j+) si=si+aij; for(i=0;i=4;i+) /* 输出各学生成绩二维表,并附带总成绩输出各学生成绩二
25、维表,并附带总成绩*/ for(j=0;j=3;j+) printf(%4d ,aij); printf(%dn,si); 第六章 数组2010年4月21日星期三4月21日星期三教师:赵军富教师:赵军富C 语言程序设计语言程序设计例例2 2、计算两个矩阵的乘积。计算两个矩阵的乘积。main() int i,j,k; int a23=1,2,3,4,5,6, b34=1,2,3,4,5,6,7,8,9,10,11,12,c24=0; for(i=0;i2;i+) for(j=0;j4;j+) for(k=0;k3;k+) cij+=aik*bkj; for(i=0;i2;i+) for(j=0;
展开阅读全文