C语言程序设计第7章.ppt

C语言程序设计第7章.ppt

ID:51643593

大小:436.50 KB

页数:43页

时间:2020-03-27

C语言程序设计第7章.ppt_第1页
C语言程序设计第7章.ppt_第2页
C语言程序设计第7章.ppt_第3页
C语言程序设计第7章.ppt_第4页
C语言程序设计第7章.ppt_第5页
资源描述:

《C语言程序设计第7章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章数组前几章使用的都是属于基本类型(整型、字符型、实型)的数据,C语言还提供了构造类型的数据,它们有数组类型、结构体类型和共用体类型。构造类型数据是由基本类型数据按一定规则组成的,因此它们又被称为“导出类型”。数组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来惟一地确定数组中的元素。7.1一维数组的定义和引用7.1.1一维数组的定义一维数组的定义方式为类型说明符数组名[常量表达式];例如:inta[10];说明:(1)数组名的命名规则和变量名相同,遵循标识符命名规则。(2)在定义数组时,需要指定数组中元素的个数,方括号中的常

2、量表达式用来表示元素的个数,即数组长度。(3)常量表达式中可以包括常量和符号常量,不能包含变量。C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。一维数组的定义定义方式:数据类型数组名[常量表达式];合法标识符表示元素个数下标从0开始[]:数组运算符单目运算符优先级(1)左结合不能用()例inta[6];a[0]0145a[1]a[2]a[3]a[4]a[5]23a编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型)数组名表示内存首地址,是地址常量1、一维数组一维数组的引用数组必须先定义,后使用只能逐个引用数组元素,不能

3、一次引用整个数组数组元素表示形式:数组名[下标]其中:下标可以是常量或整型表达式例inti=15;intdata[i];(不能用变量定义数组维数)例inta[10];printf(“%d”,a);()必须for(j=0;j<10;j++)printf(“%dt”,a[j]);()例intdata[5];data[5]=10;//C语言对数组不作越界检查,使用时要注意[例7.1]数组元素的引用#includevoidmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)print

4、f(“%d”,a[i]);printf(“”);}7.1.3一维数组的初始化对数组元素的初始化可以用以下方式实现(1)在定义数组时对数组元素赋予初值。(2)可以只给一部分元素赋值。(3)如果想使一个数组中全部元素值为0,可以写成:inta[2]={0,0}或inta[2]={0};。(4)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。初始化方式在定义数组时,为数组元素赋初值(在编译阶段使之得到初值)inta[5]={1,2,3,4,5};等价于:a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;说明:数组不初始化,

5、其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值当全部数组元素赋初值时,可不指定数组长度如inta[5]={6,2,3};等价于:a[0]=6;a[1]=2;a[2]=3;a[3]=0;a[4]=0;如inta[3]={6,2,3,5,1};()staticinta[5];等价于:a[0]=0;a[1]=0;a[2]=0;a[3]=0;a[4]=0;只给部分数组元素赋初值inta[]={1,2,3,4,5,6};编译系统根据初值个数确定数组维数一维数组的初始化7.1.4一维数组程序举例[例7.2]用数组来处理求Fibonacci数列问题#incl

6、udevoidmain(){inti;intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0)printf(“”);printf(“%12d”,f[i]);}}[例7.3]用起泡法对6个数排序(由小到大)起泡法的思路:将相邻两个数比较,将小的调到前头例6-2问题描述:从纸牌同一花色的13张牌中任取7张,顺序为:13,8,6,1,2,3,4,请按照从小到大进行排序。问题分析:这个问题可以分成以下几步:1、从这13,8,6,1,2,3,4七个数中找

7、出最大数(13),放在最后;2、从余下的8,6,1,2,3,4六个数中找出最大数(8),放在倒数第二位;3、从余下的6,1,2,3,4五个数中找出最大数(6),放在倒数第三位;4、从余下的1,2,3,4四个数中找出最大数(4),放在倒数第四位;5、从余下的1,2,3三个数中找出最大数(3),放在倒数第五位;6、从余下的1,2两个数中找出最大数(2),放在倒数第六位。12346813说明:这个过程可以用循环结构实现,需要循环6次:for(i=0;i<6;i++)或for(i=1;i<7;i++)问题分析(续):接下来问题就是如何从含n个数的数列中找出最大数。方法:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。