C语言基础 第7章一维数组.pptx
- 文档编号:287565
- 上传时间:2022-10-08
- 格式:PPTX
- 页数:19
- 大小:249.19KB
C语言基础 第7章一维数组.pptx
《C语言基础 第7章一维数组.pptx》由会员分享,可在线阅读,更多相关《C语言基础 第7章一维数组.pptx(19页珍藏版)》请在冰豆网上搜索。
第7章数组与字符串,点击此处结束放映,一维数组多维数组字符数组与字符串,当我们需要处理相关联的一批数据时,基本类型数据就不能进行有效的表示、存储和处理。
为了解决这个问题,引入了构造数据类型。
数组是构造数据类型中的一种。
数组是由一些相同类型的数据按一定的规则构成的数据类型。
它的每个成员称为数组元素,每个数组元素都可作为简单变量来使用。
点击此处结束放映,字符串,是字符的序列。
它不是C语言的数据类型,但与数组密切相关。
因此,字符串也是本章的一个重要内容。
数组操作中,离不开循环程序技术的配合,两种技术总是密切地联系在一起。
点击此处结束放映,7.1一维数组,点击此处结束放映,数组是一些同类型数据的有序集合,它们存储在内存的一个连续的存储区内。
数组中的每个元素用下标加以区别。
所以,数组元素又称为下标变量。
数组下标的个数,称为数组的维数。
7.1.1一维数组的定义,点击此处结束放映,和其他变量一样,数组也要遵循“先定义后引用”的原则。
程序中使用数组时,必须先用数组定义语句对其进行说明。
通过定义说明数组的名字,数据类型,维数和容量。
一维数组定义语句的一般格式为:
数据类型数组名常量表达式;,常量表达式表示的是数组容量,也叫做数组的长度。
它说明数组元素的个数。
当定义了一个数组后,系统就在内存的数据区为它开辟一个连续空间,用来存储各数组各元素的数据。
下标值是从零开始的。
作为变量的数组元素,它的下标,既可以是常量表达式,也可以是含变量的表达式,例如,abci,absi+j等。
点击此处结束放映,构造数据类型之一,数组:
有序数据的集合,用数组名标识,数组名常量表达式;,合法标识符,表示元素个数下标从0开始,:
数组运算符单目运算符,元素:
属同一数据类型,用数组名和下标优确先定级
(1),左结合不能用(),一维数组的定义定义方式:
数据类型例inta6;,a0a1a2a3a4a5,012345,a,编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型),数组名表示内存首地址,是地址常量,点击此处结束放映,7.1.2数组元素的引用数组元素的引用是通过数组下标变量的实现的。
下标变量的形式为:
数组名下标例7.1.1设有整型数组a,其长度为5。
编写程序,令5个数组元素的值依次为10,20,30,40和50并输出数组各元素的值。
这个问题可以用循环结构技术完成。
程序如下:
点击此处结束放映,#includestdio.hmain()inti,a5;for(i=1;i=5;i+)ai-1=i*10;/*为数组元素赋值*/for(i=0;i=4;i+)printf(a%d=%dn,i,ai);/*输出数组各元素的值*/,点击此处结束放映,程序给出下面的输出结果:
a0=10a1=20a2=30a3=40a4=50,点击此处结束放映,可以看到,数组元素的引用是通过数组名和相应的下标引用的。
这种引用方法叫作“下标法”。
在程序中引用数组元素时,其下标不能超过该数组定义的长度。
C语言系统不进行数组是否超出定义的边界的检查,这个任务由用户自己解决。
这就要求程序设计人员必须给数组以足够的容量,当然,还要注意程序的正确性。
数组容量不够或程序的错误,都有可能导致数组的运算超出数组的边界。
运算超出数组边界是有一定危险的,编程时要特别注意。
点击此处结束放映,例inti=15;,(不能用变量定义数组维数),例inta10;printf(“%d”,a);(),必须for(j=0;j10;j+)printf(“%dt”,aj);,(),例intdaintatd5a;tai;,点击此处结束放映,d一ata维5数=1组0;的/引/C语用言对数组不作越界检查,使用时要注意数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组数组元素表示形式:
数组名下标其中:
下标可以是常量或整型表达式,7.1.3一维数组的初始化,初始化方式inta5=1,2,3,4,在5定;义数组时,为数组元素赋初值等价于:
a0=1;(在a1编=译2阶;a段2使=之3;得a到3初=4值;)a4=5;说明:
数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值只给部分数组元素赋初值当全部数组元素赋初值时,可不指定数组长度s如taticiinnttaa55=;6,2,3;等等价价于in于t:
a:
a=0a=10,02;=,36a,;41a,5=1,60=;2a;a22=0=;3a;a33=0=;0a;a44=0=;0;如编in译ta系3统=根6,据2,3初,5值,1个;数(确)定数组维数,点击此处结束放映,7.1.4一维数组程序设计,点击此处结束放映,一维数组的程序设计,仍然离不开我们已经学过的顺序结构、选择结构和循环结构的设计方法。
但在这一节我们更关注的是数组的设计和处理。
我们要学习如何根据问题确定所需要的数组,如何处理数组中的各个数组元素。
对于若干个相互关联的,有某种联系的数据,一般用数组来组织这些数据,会对程序的数据处理带来很大的好处,减小程序设计的难度,提高数据处理的效率。
在加工处理数组数据方面,循环程序技术起着非常大的作用。
在许多情况下,不采用循环程序设计恐怕是不可能的。
下面通过一些程序例子来学习一维数组程序的设计。
点击此处结束放映,程序举例,步骤:
2.处理:
(a)先令max=min=x0,若minxi,令min=xi3.输出:
max和min,#include,点击此处结束放映,#defineSIZE10,例读10个整数存入数组ma,in找()出其中最大值和最小值intxSIZE,i,max,min;printf(Enter10integers:
n);for(i=0;iSIZE;i+),printf(%d:
i+1);,1.输入:
for循环输入10个整数scanf(%d,max=min=x0;,(b)依次用xi和max,min比fo较r(i=(循1;i环S)IZE;i+)若maxxi,令max=xiif(maxxi)max=xi;,if(minxi)min=xi;,printf(Maximumvalueis%dn,max);printf(Minimumvalueis%dn,min);,例用简单选择法对10个数排序,排序过程:
首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换第一趟选择排序,结果最小的数被安置在第一个元素位置上再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换第二趟选择排序重复上述过程,共经过n-1趟排序后,排序结束,点击此处结束放映,k,例i=1,初始:
4193,k,k,j,38659776134927jjjjj,i=2jjjjj二趟:
13276597764938,点击此处结束放映,Ch5_201.c,输入n个数给a1到anfori=1ton-1,ajak,真k=j,输出a1到an,k=iforj=i+1ton,i!
=k,真aiak,假,#includemain(),点击此处结束放映,inta11,i,j,k,x;printf(Input10numbers:
n);for(i=1;i11;i+)scanf(%d,i+),假k=i;for(j=i+1;j=10;j+)if(ajak)k=j;,if(i!
=k)x=ai;ai=ak;ak=x;,printf(Thesortednumbers:
n);for(i=1;i11;i+)printf(%d,ai);,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言基础 第7章一维数组 语言 基础 章一维 数组