资源描述:
《数组及其应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序设计技术C语言数据描述和C程序设计初步结构化程序设计基础和C语言的控制结构数组及其应用函数与C程序结构指针与函数指针与数组字符串及其应用结构体类型和联合体类型C语言的文件处理及其应用位运算与枚举类型数组及其应用3.1 一维数组3.1.1一维数组的定义和初始化3.1.2一维数组元素的引用方法3.2二维数组和多维数组3.2.1二维数组和多维数组的定义3.2.2二维数组和多维数组元素引用方法3.3数组的简单应用3.3.1数组元素值的随机生成3.3.2常用排序方法3.3.3常用查找方法一维数组数组是有序数据的集合。一维数组是一组按线性排列有序且个数有限的同类型变量构成的数据集合。每个数组有一个名称
2、--数组名,数组中的每个数据元素有一个编号--下标,下标从0开始,是正整数。一维数组在存储时需要占用连续的内存空间,其每一个数据元素所占用的字节长度与它们的数据类型相关。3.1.1一维数组的定义和初始化一维数组的定义存储类型数据类型数组名[常量表达式];存储类型:auto、static、extern数据类型:数组元素的数据类型(基本,构造,指针)常量表达式:指定数组的元素个数,也称数组长度。例如:ints[30];/*定义了1个整型数组s*/把30个学生的成绩放在一维数组s中,数组中每个元素表示一个学生的某科成绩,如s[5]表示序号为5的学生成绩73。因序号从0开始,所以没有S[30]元素。3
3、.1.1一维数组的定义和初始化一维数组的初始化数据类型 数组名[n]={常量列表};其中:常量列表:可是逗号分隔的常量或常量表达式。n:数组长度,常量列表个数不能超过数组长度。例如:inta[10]={ 1,2,3,4,5,6,7,8,9,10 };/*常量*/intb[3]={1,3*5,4*3-2};};/*常量表达式*/intd[5]={1,2,3,4,5,6};×/*超过数组长度*/注意:数组名代表数组存储区的首地址,即第一个数组元素的存储地址。即a等价于&a[0]。3.1.1一维数组的定义和初始化数组元素初始化的几种形式在数组初始化时,既可以对全部数组元素赋初始值,也可只对部分数组元
4、素赋初始值,没有初始化的元素值为0(字符数组为’ ’);chars1[10]={‘a’,’b’,’c’,’d’,’e’};/*其余元素为‘ ’*/如果数组长度没有指定,以初始化数值个数作为数组的长度,或者说数据的个数是确定的,可以不指定数组的长度。floata1[]={10,20,30.9,40,50};/*数组长度为5*/将数组全部元素初始化为0值的简写形式例如:inta[10]={0};inta[5]={0*10};×不能给数组整体赋值例如,int a[5]={1,1,1,1,1}int a[5]={1};×3.1.2一维数组元素的引用C语言规定:只能逐个引用数组元素而不能一次引用整个
5、数组。数组元素(下标变量)表示形式:数组名[下标]下标:整型常量或整型表达式,实型下标自动取整。例:intb[10];(定义数组b)b[10]=100;×(下标越界)b=100;×(整体操作数组)常将数组和循环配合使用。通过改变数组的下标值来访问数组的各个元素。举例如下:doublea[10];for(i=0;i<10;i++)scanf(“%lf”,&a[i]);(输入各元素)for(i=0;i<10;i++)printf(“%lf”,a[i]);(输出各元素)a[5]=300;/*将a数组第6个元素(序号5)赋值为300*/3.1.2一维数组元素的引用例3-1将一个整型数组中所有元素值在同
6、一个数组中按逆序重新存放并输出。程序一次运行情况如下所示:InputtenvalueofArray:2123252729303234363838363432302927252321Arr[0]Arr[9]3.1.2一维数组元素的引用例3-4打印杨辉三角形的前10行(用一维数组处理)杨辉三角形的数列特点:即一行中某列的数是上一行该列上前两位数之和。比如第4行第2列的3等于第3行第1、2列的数1+2。每行第1列和最后1列都为1,行数=列数。解题思路:利用数组具有保存数据的特点,将第1列初始化为1,第n行从第n列开始,从后往前计算该行中各列的值,在数组中已经保留了上一行的各列数据,利用此数据,可以计
7、算新行的各列数据,然后输出。3.1.2一维数组元素的引用对每一行杨辉三角形值的具体处理方法为:首先用表达式yh[row]=1将该行最后一个元素值置1,然后从后向前循环执行表达式:yh[col]=yh[col]+yh[col-1]。即将一维数组yh上一行当前位置元素值与其前面一个位置的元素值相加作为本行当前位置上的元素值。row=1:yh[1]=1;利用它可将每行的第1列置为1。row=2:yh[2