




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2019/11/19,1,上一节我们学到了,while、for循环执行过程选择的原则breakcontinue逗号表达式,2019/11/19,2,第六章利用数组处理批量数据,2019/11/19,3,6.1怎样定义和引用一维数组6.2怎样定义和引用二维数组6.3字符数组,内容Contents,2019/11/19,4,数组的作用,到目前为止,我们都使用变量来保存数据,以方便重用。现在,我们将学习使用数组来保存多个相关的同类型数据。一个整型数组中的元素都是整型;一个字符型数组中的元素都是字符型。,2019/11/19,5,数组(Array)的声明,inta10;声明一个有10个元素的数组a,每个元素均为int在内存分配连续的10个int空间给此数组使用a0、a1、a2、a9这样的形式访问每个元素。它们与普通变量没有任何区别数组名对应数组的首地址,a1,a2,a3,a4,a5,a6,a7,a8,a9,a0,a,0 x0012ff20,0 x0012ff24,0 x0012ff28,0 x0012ff2c,0 x0012ff30,2019/11/19,6,数组下标和数组长度,数组下标可以是整型常量、变量或整型表达式inta1i;/可以inta2i+3;/可以inta3-4;/不可以,数组大小必须大于0inta40;/不可以,数组大小必须大于0inta5(int)2.5;/可以数组长度应为整型常量intn=5;inta6n;/C99之前不可以,2019/11/19,7,数组初始化1声明的同时初始化,inta5=12,34,56,78,9;inta5=0;/未赋值的元素自动设为0inta=11,22,33,44,55;数组大小可以用宏定义,以适应未来可能的变化#defineSIZE10intaSIZE;数组声明后的初值仍然是随机数,一般需要我们来初始化。见下页例no_data.c,2019/11/19,8,数组初始化2-声明之后赋值,inta10;a0=0;a1=1;.a9=9;for(i=0;i10;+i)ai=i;inta10;a=0,1,2,3,4,5,6,7,8,9;错,9,/例6.1arrayio.c对10个数组元素依次赋值为/0,1,2,3,4,5,6,7,8,9,并按逆序输出#includeintmain()inti;inta10;for(i=0;i=0;-i)printf(%d,ai);printf(n);return0;,2019/11/19,10,未经初始化的数组,/*no_data.c-uninitializedarray*/#include#defineSIZE4intmain(void)intno_dataSIZE;/uninitializedarrayinti;printf(%2s%14snn,i,no_datai);for(i=0;iSIZE;i+)printf(%2d%14dn,i,no_datai);return0;,2019/11/19,11,打印每个月的天数,/*day_mon1.c-printsthedaysforeachmonth*/#include#defineMONTHS12intmain(void)intdaysMONTHS=31,28,31,30,31,30,31,31,30,31,30,31;intindex;for(index=0;indexMONTHS;+index)printf(Month%dhas%2ddays.n,index+1,daysindex);return0;,2019/11/19,12,如何得到数组长度?,sizeof(a):整个数组所占字节数sizeof(a0):元素a0所占字节数,即每个元素所占字节数,/*day_mon2.c-lettingthecompilercountelements*/#includeintmain(void)intdays=31,28,31,30,31,30,31,31,30,31;intindex;/打印days数组各元素,怎么做?for(index=0;indexsizeof(days)/sizeof(days0);index+)printf(Month%2dhas%ddays.n,index+1,daysindex);return0;,2019/11/19,13,例6.2用数组处理求Fibonacci数列问题,解题思路:例5.8的缺点?每次输出,都需重新计算。工作有效率就是做事不重复如果用数组处理,每一个数组元素代表数列中的一个数,依次求出各数并存放在相应的数组元素中,2019/11/19,14,#includeintmain()inti;intf20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)printf(%12d,fi);if(i+1)%5=0)/换行printf(n);printf(n);return0;,2019/11/19,15,例6.3有10个地区的面积,要求对它们按由小到大的顺序排列。,解题思路:把题目抽象为:“对n个数按升序排序”采用起泡法排序动画演示,2019/11/19,16,985420,895420,859420,854920,854290,854209,大数沉淀,小数起泡,a0a1a2a3a4a5,for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;,2019/11/19,17,854209,584209,548209,542809,542089,a0a1a2a3a4a5,for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;,2019/11/19,18,542089,452089,425089,420589,a0a1a2a3a4a5,for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;,2019/11/19,19,420589,240589,204589,a0a1a2a3a4a5,for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;,2019/11/19,20,204589,024589,a0a1a2a3a4a5,for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t;,2019/11/19,21,for(i=0;iai+1),for(i=0;iai+1),for(i=0;iai+1),for(i=0;iai+1),for(j=0;j5;j+),2019/11/19,22,#includeintmain(void)inta10;inti,j,t;printf(input10numbers:n);for(i=0;iai+1)/ai和ai+1逆序则交换t=ai;ai=ai+1;ai+1=t;,2019/11/19,23,printf(thesortednumbers:n);for(i=0;i10;+i)printf(%d,ai);printf(n);return0;,2019/11/19,24,一维数组的逆置,#includeintmain(void)inta10;inti,j,t;for(i=0;i10;+i)ai=i;printf(originnumbers:n);for(i=0;i10;+i)printf(%d,ai);printf(n);,for(i=0,j=9;ij;+i,-j)t=ai;ai=aj;aj=t;printf(reversednumbers:n);for(i=0;i10;i+)printf(%d,ai);printf(n);return0;,2019/11/19,25,数组下标不能越界,下标越界是大忌!编译器不会报错使用大于最大下标的下标,将访问数组以外的空间。那里的数据不是我们所想定的情况,可能带来严重后果有时,故意越界访问数组会起到特别效果,但一定要对自己在做什么了如指掌,2019/11/19,26,数组的用处与特点,保存大量同类型的相关数据快速地随机访问一旦定义,不能再改变大小在编译阶段就确定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内生性骨软骨瘤课件
- 内浮顶储罐培训课件
- 1大青树下的小学 +公开课一等奖创新教案
- 技术投标文件编制课件
- 多核实时调度算法-洞察及研究
- 民法侵权篇解读
- 葫芦种植技术
- 勘察安全员培训证书课件
- 劲松社区消防安全培训课件
- 十八项医疗核心制度考试题库及答案
- 美容院设备维护管理规章
- 敏捷企业组织结构与设计的案例研究
- 2025年行政执法考试-公安民警中级执法资格考试历年参考题库含答案解析(5套典型考题)
- 【语文 北京版】2025年高考招生统一考试高考真题语文试卷(真题+答案)
- 大健康产业发展现状与趋势分析
- 2025年芳香保健师(初级)职业技能鉴定综合试题
- 世界避孕日培训
- 政务摄影培训课件模板
- 职业健康卫生培训课件
- 快递行业包裹分拣操作流程模拟题
- 辅助生殖妊娠营养干预
评论
0/150
提交评论