资源描述:
《C语言的数组课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章 数组§7.1一维数组数组:数组是一组有序数据的集合,数组中每一个元素的类型相同。用数组名和下标来唯一确定数组中的元素。一、一维数组的定义定义方式:类型说明符数组名[下标常量表达式]例、inta[10]定义一个数组,数组名a,有10个元素,每个元素的类型均为int。这10个元素分别是:a[0]、a[1]、a[2]、a[3]、a[4]、....、a[8]、a[9]。注意:(1)C语言中,数组下标从0开始.(2)C语言不允许对数组的大小做动态定义,如:intn;scanf("%d",&n);inta[
2、n];因为,在编译时,C编译器根据已知数组大小分配内存。二、数组元素的引用C语言规定,不能引用整个数组,只能逐个引用元素,元素引用方式:数组名[下标]例、a[0]=a[5]+a[7]-a[2*3][例7.1]使数组元素a[0]~a[9]的值为0~9,然后逆序输出。main(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d",a[i]);}运行输出:9876543210三、一维数组的初始化初始化:在定义时指定初始值,编译器把初
3、值赋给数组变量。赋值:使用赋值语句,在程序运行时把值赋给数组变量,如a[0]=2。1、一般初始化,例、inta[10]={0,1,2,3,4,5,6,7,8,9};intarray[10]={1,2,3,4,5,6,7,8,9,10};2、部分元素初始化,例、inta[10]={0,1,2,3,4};仅前5个元素赋初值,后5个元素未指定初值。3、全部元素均初始化为0,不允许简写。inta[10]={0,0,0,0,0,0,0,0,0,0};不能简写为:inta[10]={0*10};注意:当程序不给数组
4、指定初始值时,编译器作如下处理:(1)编译器自动把静态数组的各元素初始化为0。(2)编译器不为动态数组自动指定初始值。4、如果全部元素均指定初值,定义中可以省略元素的个数,例、inta[5]={1,2,3,4,5};可以写为:inta[]={1,2,3,4,5};四、一维数组程序举例[例7.2]用数组来处理Fibonicci数列的前20项。F1=1n=1F2=1n=2Fn=Fn-1+Fn-2n≥3main(){inti;staticintf[20]={1,1};/*f1、f2已知*/for(i=2;i<
5、20;i++)f[i]=f[i-1]+f[i-2];for(i=0;i<20;i++){if(i%5==0)printf("");printf("%12d",f[i]);}}程序如下:[例7.3]输入10个数,用“起泡法”对10个数排序(由小到大)。“起泡法”算法:以六个数9、8、5、4、2、0为例。第1趟比较(p124,图7.1)第2趟比较(p124,图7.2)第1趟比较后,剩5个数未排好序;两两比较5次第2趟比较后,剩4个数未排好序;两两比较4次第3趟比较后,剩3个数未排好序;两两比较3次第4趟
6、比较后,剩2个数未排好序;两两比较2次第5趟比较后,全部排好序;两两比较1次算法结论:对于n个数的排序,需进行n-1趟比较,第j趟比较需进行n-j次两两比较。程序流程图:(用两层嵌套循环实现)程序:设需排序的数有10个,定义数组大小为11,使用a[1]~a[10]存放10个数,a[0]不用。main(){inta[11];/*用a[1]~a[10],a[0]不用*/inti,j,t;/*i,j作循环变量,t作两两比较的临时变量*/printf("input10numbers:");for(i=1;i
7、<11;i++)scanf("%d",&a[i]);/*输入10个整数*/printf("");for(j=1;j<=9;j++)/*第j趟比较*/for(i=1;i<=10-j;i++)/*第j趟中两两比较10-j次*/if(a[i]>a[i+1])/*交换大小*/{t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("thesortednumbers:");for(i=1;i<11;i++)printf("%d",a[i]);}选择法排序Let’sdoit例二分法查找有序
8、数列中的元素Let’sdoit例插入法排序在已排好序的数列中插入一个数,使之仍然有序查找有序数列中的元素Let’sdoit§7.2二维数组一、二维数组的定义一般形式:类型说明符数组名[常量表达式][常量表达式]例、floata[3][4];a为3×4(3行4列)的数组floatb[5][10];b为5×10(5行10列)的数组二维数组的理解:二维数组a[3][4]理解为:有三个元素a[0]、a[1]、a[2],每一个元素是一个包含4个元素的