c语言程序设计(王勇)第9章数组-建工化学_第1页
c语言程序设计(王勇)第9章数组-建工化学_第2页
c语言程序设计(王勇)第9章数组-建工化学_第3页
c语言程序设计(王勇)第9章数组-建工化学_第4页
c语言程序设计(王勇)第9章数组-建工化学_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章数组,引入,上一页,下一页,暂停,重放,系统,返回,休息,一、数组的概念,数组是指一组同类型数据组成的序列。数组中的每个数据称为一个元素,用一个统一的名字来标识,用下标指示数组中的各个元素。,二、数组的维数,一维:只含有一个下标的数组称为一维数组a9,二维:含有两个下标的数组称为二维数组b34,多维:含有多个下标的数组称为多维数组c2354,上一页,下一页,暂停,重放,系统,返回,休息,第一节一维数组,一、定义,格式:类型标识符数组名常量表达式;,(1)用,不能用(),(2)下标只能用常量,(3)下标必须是大于零的整数,(4)下标最大元素个数是65535,指明数组中各元素的数据类型,指明数组包含的元素个数,举例:intab10;,说明:,练习,上一页,下一页,暂停,重放,系统,返回,休息,二、数组元素的初始化,在定义数组时对各元素指定初始值,称为数组的初始化,例:intab5=1,3,5,7,9;,内存中存储格式为:,例:charc10=c,l,a,n,g,u,a,g,e,内存中存储格式为:,ab0ab1ab2ab3ab4,c0c1c2c3c4c5c6c7c8c9,ab,c,上一页,下一页,暂停,重放,系统,返回,休息,说明:,1.下标是从0开始的,2.初始化数据用括起,各数据间用“,”分隔,3.数据个数可以少于数组的元素个数,但不能大于元素个数。,inta5=1,3,5;,inta5=1,2,3,4,5,6,7;,4.当给所有元素赋值时,可以省略数组元素个数,系统根据数据个数确定数组元素的个数。,floatb3=1.0,2.0,3.5;,floatb=1.0,2.0,3.5;,floatb=1.0,2.0,3.5;,floatb8=1.0,2.0,3.5;,上一页,下一页,暂停,重放,系统,返回,休息,三、数组元素的引用,引用格式:数组名下标,(1)定义与引用的区别,inta9;a9=10;,(2)数组元素的赋值只有在初始化时才能整体赋值,以后只能通过逐个赋值的方法进行。,例:intb3=1,0,5;,例:a2=3;,说明:,a0=a4+a2;,intb3;b=1,0,5;,上一页,下一页,暂停,重放,系统,返回,休息,上一页,下一页,暂停,重放,系统,返回,休息,二、数组首地址引用方法,第二节一维数组和指针,例:*(a+2)=3;scanf(“%d”,a+i);printf(“%d”,*(a+i);,例:inta5=1,3,5,7,9;,内存中存储格式为:,a0a1a2a3a4,地址,a+1,a+2,a+3,a+4,a,一、一维数组和数组元素的地址,引用格式:数组名+i,上一页,下一页,暂停,重放,系统,返回,休息,例:*(p+2)=3;for(I=0;I=4;I+)scanf(“%d”,p+);p=a;for(I=0;I=4;I+)printf(“%d”,*p+);,例:inta5=1,3,5,7,9,*p=a;,内存中存储格式为:,a0a1a2a3a4,p+1,p+2,p+3,p+4,p,三、利用指针引用一维数组元素,引用格式:指针名+i,上一页,下一页,暂停,重放,系统,返回,休息,例:p2=5;for(i=0;ibreturna;elsereturnb;,第三节指针和数组做为函数参数,二、数组名和指针做实参(传址调用),三、数组和指针做形参格式1:函数类型函数名(参数类型指针)例:intmax(int*p);格式2:函数类型函数名(参数类型数组)例:intmax(inta);或intmax(intaM);,例:main()inta=1,2,3,4,5;printf(“%d”,mix(a1,a3);,第四节数组元素的引用举例,输出下列矩阵,上一页,下一页,暂停,重放,系统,返回,休息,#include“stdio.h”main()inti;inta20;for(i=0;i20;i+)ai=i+1;for(i=0;i20;i+)if(i%5=0)printf(“n”);printf(“%8d”,ai);,23457891011121314151617181920,printf(“%8d”,*(a+i);,*(a+i)=i+1;,输入十个数,计算其平均值,floataver(floata,intn)inti;floatsum=0,average;for(i=0;i=n-1;i+)sum=sum+ai;average=sum/n;returnaverage;,上一页,下一页,暂停,重放,系统,返回,休息,main()inti;floatsum=0,a10,av;for(i=0;i10;i+)scanf(“%f”,第五节二维数组,一、引言,假设某班级学生的成绩如下:,上一页,下一页,暂停,重放,系统,返回,休息,二、定义,格式:类型数组名常量表达式1常量表达式2,举例:intb34;,说明:,1.二维数组的排列顺序是按行排列的,2.二维数组所有元素个数不能大于65535,intb200400;,上一页,下一页,暂停,重放,系统,返回,休息,三、初始化,同一维数组一样,二维数组也可以在定义的时候赋值,intb34=1,2,3,4,5,6,7,8,9,10,11,12;,说明:,1.初始化可以采用分行的方法完成,2.也可以直接按各个元素在数据中的排列顺序直接列出,intb34=1,2,3,4,5,6,7,8,9,10,11,12;,这种方式直观,清晰,是最常见的一种方式,这种方式分不清行列间的关系,而且数据较多时很容易出错,上一页,下一页,暂停,重放,系统,返回,休息,3.给所有元素赋值时或采用分行方式赋值时,下标1可省略,例:int3=1,2,3,6,5,4;,a00a01a02a10a11a12,inta23=1,2,1;,intb3=1,2,3,4,5,6,7,8,9,10,11,12;,inta23=1,2,3,6,5,4;,inta3=1,2,1,a00a01a02a10a11a12,4.任何时候下标2不能省略,因为系统无法判断元素个数,a00a01a02a10a11a12,上一页,下一页,暂停,重放,系统,返回,休息,四、二维数组的引用,与一维数组的引用类似,二维数组的引用也是通过数组名和两个下标进行的,例:编写输入各位同学成绩的程序段(假设有40位同学),main()inti,j;floatcj416;for(i=1;i=40;i+)for(j=1;j=5;j+)printf(“请输入第%d位同学第d门成绩”),i,j);scanf(“%f”,cjij);,上一页,下一页,暂停,重放,系统,返回,休息,指向指针的指针,i,4,p2,int*p2;inti=3;p2=,定义一个指向指针变量的变量p1,定义一个指针变量p2,定义一个整型变量i,将变量i的地址传给p2,即使p2指向变量i,将指针变量p2的地址传给p1,即使p1指向p2,一个指针可以指向一个整型数据、实型数据、字符型数据以及结构体、共用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论