- 1、本文档共85页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
07第07章数组
第7章 数组 本章要点 了解数组 理解怎样定义数组以及怎样操纵数组中的数据 理解“数组下标越界”的含义 了解数组处理中的一些限制 了解怎样将数组作为参数传递给函数 理解怎样使用字符串函数处理C-string 了解怎样向C-string输入数据以及怎样从C-string输出数据 理解怎样操纵二维数组中的数据 了解多维数组 问题的提出 统计某一地区每岁年龄的人数,以及总人数,假定不超过120岁。 用120个变量: int age1, age2, age3, …... age119, age120 程序 数组(构造数据类型) 一维数组 二维数组 字符数组 一维数组的定义 引用 统计各年龄段的人数 问题:统计某一地区每岁年龄的人数,以及总人数,假定不超过120岁。 定义其他类型数组 数组初始化 在定义数组时赋初值 数组在内存中的存放 注意 C++不允许在数组上进行整体操作 不能整体赋值 不能比较 不能整体输入输出 赋值:for(i=0;i10;i++) y[i]=x[i]; 输入:for(i=0;i10;i++) cin y[i]; 输出:for(i=0;i10;i++) cout y[i]; 比较:if(x[i]=y[i])…… 一维数组应用 逆序 数的分解 求Fibonacci数列问题 排序 插入 查找(顺序、折半) 合并 逆序输出 P122 问题:程序使a[0]到a[9]的值为0~9,然后按逆序输出。 程序: #include iostream.h// 逆序输出 #include iomanip.h void main( ) { int i,a[10]; for (i=0;i=9;i++) a[i]=i; for (i=9;i=0;i--) coutsetw(4)a[i]; coutendl; } 数组元素的逆序存放 #include iostream.h // 数组元素的逆序存放 #define N 7 void inverse(int b[N]) { int i; for(i=0; iN/2; i++) { int t=b[i]; b[i]=b[N-1-i]; b[N-1-i]=t; } } void main( ) { int a[N]={ 7, 2, 5, 4, 3, 6, 1}; cout原始数组元素为:endl; for(int i=0; iN; i++) couta[i]\t; cout\n; inverse(a); cout逆序后的数组元素为:endl; for(i=0; iN; i++) couta[i]\t; cout\n; } 求Fibonacci数列问题 问题:用数组求Fibonacci数列的前20项和前20项之和。 程序: #include iostream.h// Fibonacci数列问题 void main( ) { int i, f[20]={1, 1}, sum=f[0]+f[1]; for (i=2; i20; i++) { f[i]=f[i-2]+f[i-1]; sum+=f[i]; } for (i=0; i20; i++) { if (i%5==0) cout\n; coutf[i]\t; } cout\n前20项和为:sum\n; } 数的分解 问题:将一个数分解到数组中,然后正向,反向输出。 分解得到的各位数字放在数组a中 个位放在a[0]中 十位放在a[1]中 百位放在a[2]中 …… 数的分解 #include iostream.h// 数的分解 void main( ) { int i, j=0, k, a[20]; cout请输入一个整数:; cini; k=i; while(k0) { a[j++]=k%10; k=k/10; } cout正向输出序列:endl; for(k=j-1; k=0; k--) couta[k]\t; coutendl; cout反向输出序列:endl; for(k=0; kj; k++) couta[k]\t; coutendl; } 一维数组作函数参数 数组元素作函数参数 与用变量做实参一样 单向值传递 数组名作函数参数 实参与形参均用数组名 实参和形参可用指针 一维数组元素作函数实参 比较数组大小(数组元素作函数参数) int large( int x, int y ) /*比较两个整数的大小*/ { int flag; if(xy) flag=1; else if (xy) flag= -1; else
文档评论(0)