C语言-数组-课件.ppt
《C语言-数组-课件.ppt》由会员分享,可在线阅读,更多相关《C语言-数组-课件.ppt(46页珍藏版)》请在三一办公上搜索。
1、2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,当变量个数少,且彼此独立时,采用变量先定义,后赋值,再使用。如:int a,b,c;a=5;b=10;c=23;printf(“%d,%d,%d”,a,b,c);,当变量个数比较多,并且有内在的关系时,例如:全班有30个人,每人一个成绩 如:int c1,c2,,c30(可以利用数组),数组是怎么构成的?一组有序数据的集合,各个元素属于同一个类型,用统一的名称标识这一组数,用下标唯一地确定这组数中的每一个值,这就构成了“数组”。,数组的基本概念
2、,数组,:有限个相同数据类型的数据分量的有序集合。,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,一、一维数组的定义,格式:,类型 标识符 长度,所有元素为同一类型,变量名,即数组名,数组中所含元素的个数,int a10;由10个整数组成的数组,共同拥有数组名,a,2、数组长度必须是整型量,int a2*3,说明:,1、用方括号将数组的长度括起来,3、数组长度也可以用常量表达式,4、不能对长度做动态定义,或者不定义长度,如:int n;n=10;int an;,6.1 一维数组的定义和使用,例如:int a5;,2010年4月21日星期三4月21日星期三,教师:赵
3、军富,C 语言程序设计,数组的三要素:,(1)相同的数据类型(定义数组时规定),(2)有限的成员个数(定义数组时规定),(3)彼此有序的排列(引用数组元素时的下标),int a5,int a5;a0=1;a1=2;a2=3;a3=4;a4=5;,6.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.若要对数组的全部元素初始化,则可省略数组
4、的长度 int a=1,2,3,4;,二、一维数组的初始化,6.1 一维数组的定义和使用,用 包括所有初值,用逗号分隔各数值,且初值的个数不能大于数组长度。,按顺序给前2个元素赋值,其余元素为均为 0,数组长度=元素的个数,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,三、一维数组元素的引用,1、数组必须先定义,后赋值,再使用,2、数组中的元素必须逐一引用,3、通过数组名及其元素的下标引用,定义:类型 数组名长度 如:int a10,引用:数组名下标,a0,a1,a9为数组a10中的所有元素,(1)下标表示了元素在数组中的位置(2)下标可以用表达式 a2*3相当于
5、a6,说明,6.1 一维数组的定义和使用,下标范围从 0 到长度-1,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.1 一维数组的定义和使用,int a10;for(i=0;i10;i+)scanf(%d,通过数组名和下标,引用数组中的每一个元素,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,例:有一个数组,内有10个元素,求出最小
6、的元素和它的 下标。,int a10,a0,a i,a9,i=?,1.定义两个临时变量 min和 k,2.假定第一个元素就是最小的,min=a0,k=0,3.用min与数组中的每一个元素ai比较,若ai比min小,将ai赋给min,同时将下标i赋给k,否则,继续比较。,6.1 一维数组的定义和使用,分析:,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,26,min=a0,i=1i=2i=3i=4i=5i=6i=7i=8i=9,1326 min=a1 k=1,循环,313 min=a2 k=2,683 min和k的值不变,13,3,203 min和k的值不变,13
7、min=a5,k=5,71 min和k的值不变,1,&min,531 min和k的值不变,121 min和k的值不变,651 min和k的值不变,min=1k=5,6.1 一维数组的定义和使用,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,main()int i,a10,min,k;for(i=0;iai)min=ai;k=i;printf(“%d,%d”,k,min);,循环输入10个数,循环找出最小的,输出最小值和原始下标,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,例 1.将6个实数由小到大排序。,5 8 9 4 7 2,第一
8、轮结束:,2 8 9 5 7 4,结 果:,2 4 5 7 8 9,算法一:选择排序法,选择排序思路:将数组中的每一个元素和其后面所有的元素进行比较,如果某一个元素小于该数,将互换位置。,第一轮开始:,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,#include main()int a6=5,8,9,4,7,2;int i,j,t;for(i=0;iaj)t=ai;ai=aj;aj=t;for(i=0;i6;i+)/将比较后的记过输出来 printf(%5d,ai);,程序代码一:,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,#i
9、nclude main()int a6=5,8,9,4,7,2,i,j,t,k;/*k为数组的下标*/for(i=0;iaj)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 语言程序设计,算法二:冒泡排序,冒泡法的思路:将相邻两个数比较,如果相邻的两个值是升序排列的,就保持原样,如果是降序排列的,就交换它们的值。(实质:大的沉下去,小的浮上来),start:a0 a1 a2 a3 a4 a5 a6 a7 2
10、 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 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,
11、16,1;int pass,time,temp,xb;for(pass=1;pass atime+1)/*判断每相邻两个元素下标*/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;iai+1)hold=a
12、i;ai=ai+1;ai+1=hold;for(i=0;i=SIZE-1;i+)printf(%4d,ai);,程序代码二:,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,6.2 二维数组的定义和引用,当一个一维数组中的每个元素本身又是一个一维数组时,该数组构成“二维数组”。,一、二维数组的定义,格式:类型 标识符长度1长度2,如:int a44,行,列,a0a1a2a3,一维数组a4,二维数组a44,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,说明:1.二维数组元素需要两个下标表示 例:int a44表示数组a中有4行4列共16个
13、数据,2.二维数组在存储空间中是按行优先存储,第一行,6.2 二维数组的定义和引用,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,二、二维数组的初始化,形式:1、对全部元素赋初值,分行,各用一个。int a23=1,2,3,4,5,6;,2 整体赋值,系统自动分行,int a23=1,2,3,4,5,6;,1,2,3,3 对部分元素赋初值,注意区别:,(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.2 二维数组
14、的定义和引用,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,三、二维数组的引用,原则:,逐一引用,说明:1.数组名下标1下标2 下标1从0到长度-1 下标2从0到长度-1,方法:,数组名 N1N2,6.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、以下二维数组说明方式中正确的是:A)int a3;B)float a(3,4);C)double a14;D)float a(3)(4);,举例
15、:,6.2 二维数组的定义和引用,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,例1:已知5名学生的四门课程成绩,求每位学生的总成绩,并按二维表格式输出。,程序代码见下页,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+)/*
16、输出各学生成绩二维表,并附带总成绩*/for(j=0;j=3;j+)printf(%4d,aij);printf(%dn,si);,2010年4月21日星期三4月21日星期三,教师:赵军富,C 语言程序设计,例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;j4;j+)printf(%4d,cij);printf(n);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 数组 课件

链接地址:https://www.31ppt.com/p-3872857.html