




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章数组,以前介绍的数据类型都是基本类型(如int、char、float),C语言还提供由基本类型按一定规则构造出的数据类型,如:数组、结构体、共用体等。构造类型数组是一组相同类型的若干个元素构成的一个整体。用一个统一的名字和下标来唯一标识数组中的元素。,如:下面介绍数组的定义与使用方法7.1一维数组的定义和引用7.1.1一维数组的定义定义形式为:类型说明符数组名常量表达式;,如:inta10;它表示由10个整型变量构成的一个数组,数组名为a,共有十个元素。说明:1、数组名是个标识符。2、数组名后是方括号。3、常量表达式表示元素的个数,即数组长度,例中表示a中共有10个元素,分别是a0,a1,a9。注意C规定下标从0开始,增量为1。,4、常量表达式是由常量构成的,不能有变量。7.1.2一维数组元素的引用数组必须先定义后使用C规定只能逐个引用数组元素而不能一次引用整个数组。数组元素表示为:数组名下标下标可以是整型常量或整型表达式。,例:main()inti,a10;for(i=0;i=0;i-)printf(“%d”,ai);7.1.3一维数组的初始化在编译阶段进行,1、在定义数组时实现,如inta10=1,1,1,1,1,0,0,0,0,0;初值依次放在花括号中。2、可以给部分元素赋初值inta20=1,1,1,1,1;3、全部赋零如:inta10;,4、在对全部元素赋初值,可不指定长度。inta=1,1,1,1,1,0,0,0,0,0;编译程序会计算出数组的长度。等价于:inta10=1,1,1,1,1,0,0,0,0,0;7.1.4一维数组程序举例分析下列程序的执行结果,main()inti;intf20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%5=0)printf(“n”);printf(“%d”,fi);,例:用冒泡法对10个数进行排序for(j=1;jai+1)t=ai;ai=ai+1;ai+1=t;,7.2二维数组的定义和引用7.2.1二维数组的定义定义形式为:类型说明符数组名常量表达式常量表达式;例如:floata34,b510;C语言中,二维数组按行存放多维数组说明及元素排列顺序:第一维变化最慢,最右边下标变化最快,7.2.2二维数组的引用形式为:数组名下标下标inta34;:a23=4;a34=3;分析其中的两个问题:一是下标与说明;二是越界问题7.2.3二维数组的初始化方法为:,1、分行给二维数组赋初值inta23=1,2,3,4,5,6;2、按数组排列的顺序对各元素赋初值inta23=1,2,3,4,5,6;3、可以对部分元素赋初值inta23=1,4;4、给全部元素赋初值,定义数组时第一维的长度可以不定,但第二维要定inta3=1,2,3,4,5,6;,7.2.4二维数组的举例有一个34的矩阵,编程序找最大值并给出行列号。7.3字符数组7.3.1字符数组的定义用于存放字符的数组为字符数组。字符数组中的一个元素存放一个字符例如:charc10;,由于字符型与整型是互相通用的,因此定义也可改为intc10;7.3.2字符数组的初始化参照书中有关内容7.3.3字符数组的引用,main()chard5=,*,*,*,*,*,*,*,*;inti,j;for(i=0;i5;i+)for(j=0;j5;j+)printf(“%c”,dij);printf(“n”);,7.3.4字符串和字符串结束标志在C语言中,字符串用一维数组来处理。chard10=I,a,m,a,b,o,y;上面的语句中,字符数组d存放了字符串“Iamaboy”。有时字符串的长度与数组长度相等。有时人们关心的是有效字符串的长度而不是字符数组的长度。如d10数组中如果只有四个有效字符。,为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以0代表。例如:“Cprogram”共有9个字符,但在内存中占10个字节main()chard20=“Iamaboy”;inti,j=0;for(i=0;i20;i+)if(di!=0)j=j+1;printf(“%dn”,j);,chard=“Iamaboy”;d数组的长度是多少?用字符串给字符数组赋初值,可以省去花括号chard=“Iamaboy”;7.3.5字符数组的输入与输出可以有两种方法1、逐个字符输入与输出for(i=0,i20;i+)scanf(“%c”,2、将整个字符串一次输入与输出chard10;scanf(“%s”,d);如输入:programprintf(“%s”,d);则输出:输出注意事项charstr15,str25,str35;scanf(“%s%s%s”,str1,str2,str3);当输入:Howareyou?,charstr15;scanf(“%s”,str);当输入:Howareyou?注意:1、以空格为分隔2、scanf函数中的输入项是字符数组名。输入项为字符数组名时,不要再加地址符,数组名代表该数组的起始地址.7.3.6字符串处理函数C函数库提供1、puts(字符数组)2、gets(字符数组)3、strcat(字符数组1,字符数组2)4、strcpy(字符数组1,字符串2)5、strcmp(字符数组1,字符串2)等,7.3.7字符数组应用举例输入一英文句子,统计有几个单词main()charstring90;inti,num=0,word=0;charc;gets(string);for(i=0;(c=stringi)!=0;i+)if(c=)word=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论