




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章数组,基本知识讲解,5.1一维数组的定义及引用5.2二维数组的定义和引用5.3字符数组,返回,5.1一维数组,数组的引入求出50人中成绩高于平均分的人数;存放50人每人5门课程的成绩;保存Fibonacci数列的前40项,5.1.1一维数组的定义与引用,数组数组是同类型数据的有序集合,是共享同一名称的一组连续保存的变量。这些变量所占的空间被称为“数组单元”。保存在其中的值称为“数组元素”。,5.1.1一维数组的定义与引用,定义数组:(1)规定数组的名称;(2)规定数组的类型;(3)规定数组的大小。,5.1.1一维数组的定义与引用,一、一维数组的定义:类型说明符数组名exp;例如:inta10,number5;二、一维数组元素的引用数组名下标例如:a5=6a0=a5*0.5+a7-a2=2时限制条件40项输出要求每行5项输出该数列的前40项,5.1.3一维数组应用举例,main()intn;longintf40=1,1;for(n=2;n40;n+)fn=fn-2+fn-1;for(n=0;n40;n+)if(n%5=0)printf(“n”);printf(“%12ld”,fn);,5.1.3一维数组应用举例,例5-2利用选择法对10个整数进行由小到大排序。,分析:输入:待排序的数据,存于一个一维数组中;输出:排序后的数据算法:一趟简单选择排序的操作为:通过n-i次数据的比较,从n-i+1个数据中选出值最小的那个,并和第i位上的数据交换。,5.1.3一维数组应用举例,例5-2利用选择法对10个整数进行由小到大排序。,擂台思想(3,-3,5,7,8,-4)第1趟:(-4,-3,5,7,8,3)第2趟:(-4,-3,5,7,8,3)第3趟:(-4,-3,3,7,8,5)第4趟:(-4,-3,3,5,8,7)第5趟:(-4,-3,3,5,7,8),5.1.3一维数组应用举例,程序清单:,发散1置换排序,例5-8用起泡法对10个数由小到大排序。,算法思想:将相邻两个数比较,将小的调到前头。,5.1.3一维数组应用举例,985420初态,888889555559444449222229000009第一趟,555584444822228000089999第二趟,444522250005888999第三趟,224004558899第四趟,024589第五趟,比较5次,比较4次,比较3次,比较2次,比较1次,5.1.3一维数组应用举例,5.1.3一维数组应用举例,程序清单,5.1.3一维数组应用举例,返回,发散1:改进的冒泡排序,5.2.1二维数组的定义与引用,一、二维数组的定义类型名数组名exp1exp2;如:intnumber54;chara34;,a00a01a02a03a10a11a12a13a20a21a22a23,a0a1a2,二、二维数组的引用数组名下标下标如:a23b12=a23/2a23=3等等;,5.2.1二维数组的定义和引用,注意:不能写成a2,3等形式;应该注意下标值应在已定义的数组大小范围内;定义数组时用的a34与引用数组元素时用的a34的区别。,5.2.1二维数组的定义和引用,5.2.2二维数组元素的存储方式,数组的存储结构:以行为主序,5.2.2二维数组元素的存储方式,inta34;,1.分行给二维数组赋初值:如:inta33=1,2,3,4,5,6,7,8,9;2.按数组排列的顺序对元素依次赋初值;如:inta33=1,2,3,4,5,6,7,8,9;,5.2.3二维数组元素的初始化,3.inta34=1,5,9;等价于inta34=1,0,0,0,5,0,0,0,9,0,0,0;4.inta43=1,2,4,5;等价于inta43=1,2,0,4,5,0,0,0,0,0,0,0;,5.2.3二维数组元素的初始化,5.可用初始化的方法来隐含定义二维数组第一维的大小,但不能省略第二维的大小。如:inta34=1,2,3,4,5,6,7,8,9,10,11,12;等价于inta4=1,2,3,4,5,6,7,8,9,10,11,12;,5.2.3二维数组元素的初始化,6.在定义时也可以只对部分元素赋初值而省略第一维长度,但应分行赋初值。如:inta4=0,0,3,0,10;,5.2.3二维数组元素的初始化,例5-3有一个二维数组a34,找出其中的最大元素,并指出所在的行号和列号。,分析:求最大值的NS图如右图所示。,程序如下:,5.2.4二维数组应用举例用,for(i=0;i=2;i+)for(j=0;j=3;j+)if(aijmax)max=aij;row=i;col=j;printf(“max=%d,row=%d,colum=%dn”,max,row,col);,main()inti,j,row=0,col=0,max;staticinta34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;,5.2.4二维数组应用举例,补充题:修改上例算法,使在同一程序中能同时求出最大值和最小值及其各自所在的行列号。,5.2.4二维数组应用举例,例5-4将一个二维数组行和列元素互换,存到另一个二维数组中。,分析设:,程序清单如下:,5.2.4二维数组应用举例,main()inta23=1,2,3,4,5,6;intb32;inti,j;for(i=0;i=1;i+)for(j=0;j=2;j+)printf(“%5d”,aij);bji=aij;printf(“n”);for(i=0;i=2;i+)for(j=0;j=1;j+)printf(“%5d”,bij);printf(“n”);,5.2.4二维数组应用举例,for(i=0;i=m;i+)for(j=0;j=n;j+),5.2.4二维数组应用举例,返回,5.3.1用一维字符数组存放字符串,一、字符数组的定义char数组名exp;如:charc10;二、字符数组的初始化(1)给字符型数组元素依次赋值。如:charstr6=C,h,i,n,a,0;,(2)直接在赋值号右边给出字符串常量。如:charstr6=“China”;,5.3.1用一维字符数组存放字符串,注意:1.字符数组的长度可经赋初值的方式隐含定义如:charstr=C,h,i,n,a,0;charstr=“China”;2.如初值个数大于数组长度,作语法错误处理。3.如初值个数小于数组长度,不足部分自动赋空(即0)。,5.3.1用一维字符数组存放字符串,三、字符数组的引用,例输出一个字符串。,main()charc12=“Iamaboy.”;inti;for(i=0;i12;i+)printf(“%c”,ci);printf(“n”);,5.3.1用一维字符数组存放字符串,5.3.1用一维字符数组存放字符串,四、字符串和字符串结束标志“China”在存储器中实际占用6个字节:,五、字符串首地址与字符串输入输出1字符数组的输出(1)用格式符“c”控制的printf();如:,main()charc12=“Iamaboy.”;inti;for(i=0;i12;i+)printf(“%c”,ci);printf(“n”);,5.3.1用一维字符数组存放字符串,(2)用格式符“s”控制的printf();如:,main()staticcharc=“China”;printf(“%s”,c);,注意:输出字符不包括“0”;,5.3.1用一维字符数组存放字符串,(3)puts(字符数组);如:,#includemain()staticcharcity=“YangZhou”;inti,j;for(i=0;i0)strcpy(string,str2);printf(“nThelargeststringis:n%sn”,string);,返回,5.3.3字符数组应用举例,直接选择排序算法,返回,直接选择排序算法,main()inti,j,k,temp,a11;for(i=1;iaj)k=j;temp=ai;ai=ak;ak=temp;for(i=1;i11;i+)printf(“%5d”,ai);,评注:并不是每次都要交换的;,if(k!=i)temp=ai;ai=ak;ak=temp;,置换排序算法发散思维导练,返回,置换排序算法发散思维导练,main()inti,j,k,temp,a11;for(i=1;iaj)temp=ai;ai=aj;aj=temp;for(i=1;i11;i+)printf(“%5d”,ai);,冒泡排序算法,返回例,冒泡排序算法,main()inti,j,t,a11;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议书:共同财产分割、子女抚养及股权代持协议
- 章希与张伟婚姻解除协议书
- 离婚协议书范本:共同财产分割与债务分担
- 离婚协议书中车辆产权与使用权限明确约定
- 第21课 小圣施威降大圣 课时练01(含答案)
- 美术老师转岗培训
- 培训经理年终述职汇报大纲
- 监理单位安全培训
- 如何放松自己
- 边境管控工作课件
- 并购绩效论文
- 2025年湖北省中考生物、地理合卷试卷真题(含答案)
- 幼儿发展评价手册使用培训
- 2025至2030年中国智能炒菜机(炒菜机器人)行业市场现状调查及前景战略研判报告
- 湛源道脉老师讲授之入门基础
- 2023年国际禁毒日-禁毒宣传普及禁毒知识提高禁毒意识
- 给校长的一封信600字(9篇)
- 南京大学介绍课件
- 产品贴牌管理制度
- 2025至2030年中国海洋信息化产业发展动态及投资决策建议报告
- 公司技术成果归属协议书
评论
0/150
提交评论