资源描述:
《C语言程序设计第7章new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章数组假设正在给某发电厂开发软件,为了在程序中表示2001年每个月的发电量,需要定义12个实型变量:要想表示2001~2003年间每个月的发电量,需要定义36个实型变量。floatf1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12;如果年数再多呢?…。显然,这种表示方式很不方便。为了满足这种应用需求,C语言提供了数组类型,它允许程序员方便地定义多个同类型的变量。数组有一维数组和多维数组之分,下面先从一维数组说起。floatf1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12;floatf13,f14,f15,f16,f17,f18,f
2、19,f20,f21,f22,f23,f24;floatf25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36;一维数组的定义可以按以下方式定义一个一维数组:类型数组名[整型常量表达式];例如,inta[10];floatf[20-5];charc[9*2];以数组a为例,它共有10个元素,依次编号为0~9,该编号称为数组元素的下标;这些元素被依次命名为a[0]、a[1]、…、a[9]。其中,类型可以是整型、实型以及字符型等;数组名是一个标识符,要符合标识符的要求;常量表达式规定了数组元素的个数。a0123456789a[0]a[1]a[2]a[3
3、]a[4]a[5]a[6]a[7]a[8]a[9]另外,每个数组元素都是int型的,可以象int型变量一样来使用,存储整型数据。下标名字一维数组的定义对于程序中定义的每个数组,C系统会根据类型和元素个数,在内存中分配地址连续的存储空间。302a[0]304a[1]306a[2]308a[3]310a[4]312a[5]314a[6]316a[7]318a[8]320a[9]对于数组a,为它分配10个大小为2字节的存储单元,每个数组元素对应一个存储单元,而且是顺序的。a代表整个数组的起始地址。注意:常量表达式中不能有变量、实数。例如,①intn=10;floatf[n];②charname
4、[10.5];一维数组的引用a0123456789a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]前面提到,数组a的元素被依次命名为a[0]~a[9]。可以看出,是按a[下标]方式命名或引用数组a的元素的。一般地,C语言按照数组名[下标]的方式来命名/引用任一数组的元素。需要注意的是,下标可以是个整型表达式。①a[3-3]表示a的第0个元素。②若k=5,则a[k]、a[k-2]分别表示a的第5、3个元素。③a[10]、a[25]都非法。在程序中,可以象使用变量一样使用数组元素。特别提醒:1.数组要先定义后使用。2.要区分定义和引用。3.注意下标不要越界。下
5、标名字例一、inta[10],y;a[1]=2;a[2]=a[1]*2;y=a[a[2]-2]-3;例二、P132例7.1(excch7ex7-1.c)。一维数组的初始化a9876543210a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]数组的初始化是指在定义数组时,为数组元素设置初值。例如,inta[10]={9,8,7,6,5,4,3,2,1,0};初值的个数不能超过数组的元素个数还可以为部分元素设置初值,例如,a9876000000a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]其余元素被初始化为0inta[10
6、]={9,8,7,6};charc[8]={’C’,’H’,’I’,’N’,’A’};cCHINA c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7]其余元素被初始化为’ ’C系统还允许用以下方式定义数组,floatf[]={1.1,2.2,3.3,4.4,5.5};f1.12.23.34.45.5f[0]f[1]f[2]f3]f[4]charc[]={’C’,’H’,’I’,’N’,’A’};cCHINAc[0]c[1]c[2]c3]c[4]一维数组举例例一、从键盘输入10位同学的成绩,然后按相反顺序输出。(ch7rvsout.c)例二、求一维数组中的最大元
7、素及其下标。(ch7maxvalue.c)注意:通过循环来完成数组各元素的输入/输出任务。①定义max和k。②首先假设a[0]为最大值,于是max=a[0];k=0;③从a[1]起,逐个与max比较。若a[i]>max,则max=a[i];k=i;④由于根据k就可以得到最大值,所以max可以省略。⑤可输入数组各元素值增加灵活性。一维数组举例(续)例三、P134例7.3,用起泡法对N个数由小到大排序。(ch7ex7-3.c)需进行