一维数组的定义和引用.ppt

上传人:za****8 文档编号:3402335 上传时间:2019-12-13 格式:PPT 页数:16 大小:378.81KB
返回 下载 相关 举报
一维数组的定义和引用.ppt_第1页
第1页 / 共16页
一维数组的定义和引用.ppt_第2页
第2页 / 共16页
一维数组的定义和引用.ppt_第3页
第3页 / 共16页
点击查看更多>>
资源描述
第七章数组,2、一维数组的定义和引用,3、二维数组的定义和引用,4、字符数组,1、概述,1.基本类型之外,C语言还提供了构造类型的数据,它们有:数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组成的,因此也可以称之为“导出类型”。,2.数组是有序数据的集合。(a)数组中的每一个元素都属于同一个数据类型。(b)用一个统一的数组名和下标,唯一的确定数组中的元素。,章节总览,一维数组的定义(1),一、定义方式:类型说明符数组名常量表达式;,二、说明:(1)数组名定名规则和变量名相同,遵循标识符定名规则。,例如:inta10;表示数组名为a,此数组有10个元素,每个元素为整型数据.,(2)数组名后是用方括弧括起来的常量表达式,不能用圆括弧。,下面的用法是错误的:inta(10);,(3)常量表达式表示元素的个数,即数组长度。,例如:在a10中,10表示a数组中有10个元素,下标从0开始,这10个元素是:a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,注意:不能使用数组元素a10;,(4)常量表达式可以包括常量和符号常量,不能包含变量。C不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。,例如:下面这样定义数组是不行的:intn;scanf(“%d”,一维数组的定义(2),更准确的说法是整型常量表达式,例inti=15;intdatai;(不能用变量定义数组维数),合法标识符,表示元素个数下标从0开始,编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型),数组名表示内存首地址,是地址常量,inta10;,数组在内存的存放形式,一、规则:(1)数组必须先定义,后使用。,一维数组元素的引用(1),(2)数组元素的使用形式为:数组名下标,下标可以是整型常量或整型表达式,例如:a0=a5+a7-a2*3;,注意:C语言规定只能逐个引用数组元素,不能一次引用整个数组.,例7.1数组元素的引用,一维数组元素的引用举例,main()inti,a10;for(i=0;i=9;i+)ai=i;for(i=0;i=0;i-)printf(“%d”,ai);,运行结果:9,8,7,6,5,4,3,2,1,0,1、在定义数组时对数组元素赋以初值。,一维数组的初始化(1),例如:inta10=0,1,2,3,4,5,6,7,8,9;,初始化之后:a0=0,a1=1,a8=8,a9=9。,2、可以只给一部分元素赋值.,例如:inta10=0,1,2,3,4;只给前五个元素赋值,后五个元素为0。初始化之后:a0=0,a1=1,a2=2,a3=3,a4=4,a5=0,,a8=0,a9=0。,3、如果想使一个数组中全部元素值为0,,可以写成inta10=0,0,0,0,0,0,0,0,0,0;,不能写成inta10=0*10;,4、对全部数组元素赋初值时,可以不指定数组长度。,一维数组的初始化(2),例如:inta=1,2,3,4,5;,上面的写法中,中只有五个数,系统会据此自动定义数组的长度为5。初始化之后:a0=1,a1=2,a2=3,a4=4,a5=5。,如果被定义的数组长度与提供初值的个数不同,则数组长度不能省略。,例如:想定义数组长度为10,就不能省略数组长度的定义。,而必须写成inta10=1,2,3,4,5;只初始化前面5个元素,后5个元素为0。,不能写成inta=1,2,3,4,5;,注意:对部分元素赋初值时,长度不能省。,一维数组的程序举例(1),例7.2用数组来处理Fibonacci数列问题。(见教材124页),程序如下:,/*行号1*/main()/*行号2*/inti;/*行号3*/intf20=1,1;/*行号4*/for(i=2,i=20;i+)/*行号5*/fi=fi-1+fi-2;/*行号6*/for(i=0,i5,交换*/,(3)859420/*94,交换*/,(4)854920/*92,交换*/,(5)854290/*90,交换*/,第一轮结束854209,那么第一轮进行了n-1=6-1=5次比较即循环了5次,一维数组的程序举例(3.2),第二轮交换:,(1)854209/*85,交换*/,(2)584209/*84,交换*/,(3)548209/*82交换*/,(4)542809/*80,交换*/,第二轮结束542089,那么第二轮进行了n-2=6-2=4次比较即循环了4次,总结:第i轮进行了n-i比较即循环了n-i次.,一共要n-1轮比较即外围循环n-1次,一维数组的程序举例(3.3),算法的N-S结构流程图如下:,aiai+1,fori=0ton-j-1,forj=1ton-1,输入n个数给a0到an-1,真,假,t=ai;ai=ai+1;ai+1=t;,输出a0到an,源程序如下:main()inta10,i,j,t;,for(i=0;i10;i+)scanf(“%d”,for(j=0;jai+1)t=ai;ai=ai+1;ai+1=t;,for(i=0;i10;i+)printf(“%d”,ai);,求2-100以内的素数题目分析:首先定义一个int型数组b100,将b当作一个筛子,并规定当bi的值为非0时,表示整数i在筛中。2为素数,将2输出,然后将筛中2的倍数筛去,即将下标为2的倍数的元素清零。此时,筛中下一个非零元素为b3,说明3为素数将其输出,然后再将下标为3的倍数的元素清零(筛去3的倍数)。这样,在下一个元素为b5,将5输出并筛去5的倍数,直到筛中无非零元素为止。,源程序:main()intb100,i,j;b0=b1=0;for(i=2;i100;i+)bi=1;for(i=2;i100;i+)if(bi!=0)printf(“%4d”,i);for(j=i;j100;j+=i)bj=0;,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!