资源描述:
《第9讲 一维数组和二维数组.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9讲一维数组和二维数组一、一维数组1、一维数组的定义2、一维数组元素的引用3、一维数组的初始化二、二维数组1、二维数组的定义和引用2、二维数组的初始化数学中的数列:a1,a2,a3,···,ai,···,anC程序中数组:a[0],a[1],a[2],···,a[i-1],···a[n-1]1、数组:数目固定、类型相同的若干变量的有序集合。2、数组元素:数组中的每一个数据。3、性质:1)数组中的每一个元素都属于同一个数据类型。2)在内存中数组占有一段连续的存储空间。基本概念:一、一维数组1、一维数组的
2、定义定义的格式:类型说明符 数组名[长度],···;说明:1)类型说明符:表明该数组所属类型,即数组元素的类型。2)数组名:数组的名称,其命名方法同变量名。例如:inta[5];含义:定义一个数组变量a,它包含5个变量元素。a[0],a[1],a[2],a[3],a[4]引用方式:数组名[下标]2、一维数组元素的引用说明:1)下标的最小值为0,最大值为长度-1。2)数组必须先定义后使用。3)数组元素只能逐个被引用,不能一次引用整个数组(字符数组除外)。4)对数组中所有元素逐个引用时,通常可使用循环结构。
3、例1写出下面程序的结果。(一维数组的使用)#includevoidmain(){inta[10],s,i;s=0;for(i=0;i<=9;i++)a[i]=i;for(i=0;i<=9;i++)s=s+a[i];printf("s=%d",s);}执行结果:s=45例2写出下面程序的结果。(一维数组的使用)#includevoidmain(){inta[10],i;a[0]=a[1]=1;for(i=2;i<=7;i++)a[i]=a[i-1]+a[i-2];f
4、or(i=0;i<=7;i++)printf("%4d",a[i]);}执行结果:1123581321例3求全班32名同学某课程的平均分并输出最高分。#includevoidmain(){inti,sum,max,a[32];floataverage;for(i=0;i<32;i++)scanf("%d",&a[i]);/*输入数组元素的值*/for(sum=0,max=a[0],i=0;i<32;i++){sum+=a[i];if(a[i]>max)max=a[i];}average
5、=(float)sum/32;printf("Average=%.2f,MAX=%d",average,max);}1)数组的初始化:指定义数组时对数组元素赋以初值。3、一维数组的初始化2)格式:类型符数组名[表达式]={初值表};3)数组初始化有三种情况:给全部元素赋初值。给部分元素赋初值。给全部元素赋初值时可不指定数组的长度。全部元素赋初值:例如inta[8]={0,1,2,3,4,5,6,7};部分元素赋初值:例如inta[8]={0,1,2,3,4};a[0]a[1]a[2]a[3]a[4]
6、a[5]a[6]a[7]01234567a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]01234000全部元素赋初值时可不指定数组的长度:例inta[]={0,1,2,3,4,5,6,7};a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]01234567例1写出下面程序的执行结果。#includevoidmain(){inta[6]={1,2,3},i,j;for(i=3;i<6;i++)a[i]=a[i-3]+a[i-2]+a[i-1];for(i=
7、0;i<6;i++)printf("%10d",a[i]);}执行结果:12361120#defineN5#includevoidmain(){inta[N]={1,2,3,4,5},t,i;for(i=0;i8、二维数组的定义格式:类型说明符数组名[行数][列数];说明:在C语言中二维数组的元素按行优先顺序存放。例如:inta[2][3];含义:定义一个数组变量a,它包含2行,每行有3个数组元素。a[0][0],a[0][1],a[0][2]a[1][0],a[1][1],a[1][2]注意:0≤下标1≤行数-1;0≤下标2≤列数-1。2、二维数组的元素引用格式:数组名[下标1][下标2]例如:定义intm[2][3];则合法数组元素的引用为:m[