文档详情

C语言课件第七章数组.ppt

发布:2017-04-16约6.75千字共74页下载文档
文本预览下载声明
第七章;问题:给一组数排序,这组 数该 如何存放呢; 本章要点;; §7-1 一维数组的定义和引用 ; 1、一维数组的定义格式为: 类型说明符 数组名[常量表达式]; 例如: int a[10]; 它表示定义了一个整形数组,数组名为a,此数组有10个元素。 ;(2)在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。例如,指定a[10],表示a数组有10个元素,注意下标是从0开始的,这10个元素是,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。请持别注意,按上面的定义,不存在数组元素a[10]。;举例: int n; scanf(“%d″,n); /*在程序中临时输入数 组的大小 */ int a[n];;3、一维数组在内存中的存放;数组名[下标] 下标可以是整型常量或整型表达式。例如: a[0]=a[5]+a[7]-a[2*3];2、一维数组元素引用的程序实例; 1、对数组元素初始化的实现方法:; (3)如果想使一个数组中全部元素值为0, 可以写成 int a[10]={0,0,0,0,0,0,0,0, 0,0}; 或inta[10]={0}; 不能写成:int a[10]={0*10}; 这是与FORTRAN语言不同的,不能给数组整体赋初值。 ;4)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。 例如:int a[5]={1,2,3,4,5}; 也可以写成 int a[]={1,2,3,4,5}; 在第二种写法中,花括弧中有5个数,系统就会据此自动定义a数组的长度为5。但若数组长度与提供初值的个数不相同,则数组长度不能省略。例如,想定义数组长度为10,就不能省略数组长度的定义,而必须写成 int a[10]={1,2,3,4,5}; 只初始化前5个元素,后5个元素为0。;程序举例1:用数组来处理,求解Fibonacci数列。;for(i=2;i20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i20;i++) { if(i%5==0) printf(″\n″); printf(″%12d″,f[i]) } /*For循环结束*/ } /*程序结束*/;程序举例2:用起泡法对10个数排序(由小到大)。 ;第 二 趟 比 较;程序流程图如下:;程序实例7.3: #include stdio.h void main() { int a[10]; int i,j,t; printf(″input 10 numbers :\n″); for (i=0;i10;i++) scanf(%d,a[i]); printf(\n); ;for(j=0;j9;j++) for(i=0;i9-j;i++) if (a[i]a[i+1]) { t=a[i];a[i]=a[i+1]; a[i+1]=t; } printf(″the sorted numbers :\n″); for(i=0;i10;i++) printf(″%d ″,a[i]); printf(″\n″); }/*程序结束*/; §7-2 二维数组的定义和引用 ;注意;§ 7.2.1二维数组的定义;地址 值 数组元素;问题:有了二维数组的基础,那么多维数组如何定义呢? ;二维数组元素的表示形式为:数组名[下标][下标] 例如: a[2][3] 下标可以是整型表达式,如 a[2-1][2*2-1];常出现的错误有: int a[3][4]; /* 定义a为3×4的数组 */ ┆ a[3][4]=3; ;可以用下面4种方法对二维数组初始化;(3) 可以对部分元素赋初值。如 int a[3][4]={{1},{5},{9}}; ;(4)如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。如: int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};它等价于:int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};;§ 7.2.4二维数组程序举例 ;
显示全部
相似文档