c++第5章-数组-课件

上传人:zhuma****mei1 文档编号:54232673 上传时间:2018-09-09 格式:PPT 页数:90 大小:781.50KB
返回 下载 相关 举报
c++第5章-数组-课件_第1页
第1页 / 共90页
c++第5章-数组-课件_第2页
第2页 / 共90页
c++第5章-数组-课件_第3页
第3页 / 共90页
c++第5章-数组-课件_第4页
第4页 / 共90页
c++第5章-数组-课件_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《c++第5章-数组-课件》由会员分享,可在线阅读,更多相关《c++第5章-数组-课件(90页珍藏版)》请在金锄头文库上搜索。

1、第5章 数组,5.1 数组的概念 5.2 一维数组的定义和引用 5.3 二维数组的定义和引用 5.4 用数组名作函数参数 5.5 字符数组 *5.6 C+处理字符串的方法 字符串类与字符串变量,数组是有序的相同类型变量的集合。组成数组的变量称为该数组的元素。数组必须包含两个要素:数组名和下标。 数组名和下标惟一地标识一个数组中的一个元素,如a1、a2 等。 一个数组在内存中占一片连续的存储单元。,5.1 数组的概念,short int a10; 假设数组的起始地址为2000,则该数组在内存中的存储情况如图所示。,数组名a为数组的起始地址:cout a endl; 输出数组a的起始地址。,C+用

2、方括号来表示数组的下标,如用s1,s2,s3分别代表s数组第1、2、3个元素的值。,cout a+i endl; 输出数组第i个元素ai的地址。,要输出数组第i个元素的值,必须用ai:cout ai n; int an;,const int n=5;int an*2;,int a10; int b2*5;,下列数组定义是否正确:,数组必须先定义,后使用。 只能逐个引用数组元素,不能一次引用整个数组中的全部元素。如:a=1 , 2 , 3 数组元素的表示形式: 数组名下标 下标可以是整型常量/变量或整型表达式。 a0 = a5 + a7 a2*3,5.2.2 引用一维数组的元素,例5.1 将数组

3、元素的值逆序输出。,#include using namespace std; int main( ) int i , a10;for ( i = 0 ; i ai;for ( i = 9 ; i = 0 ; i-)cout ai “ “;cout ai;for ( i = 0 ; i = 4 ; i+ )temp = ai;ai = a9-i;a9-i=temp; for ( i = 0 ; i = 9 ; i+)cout ai “ “;cout =3),求Fibonacci数列问题,#include using namespace std; int main( ) int i;int f2

4、1= 0 , 1 , 1;for ( i = 3 ; i = 20 ; i+ )fi = fi-1 + fi-2;cout f20endl;return 0; ,用数组处理:,不用数组处理:,#include using namespace std; int main( ) int i , num;int f1 , f2;f1 = f2 = 1;for ( i = 3 ; i = 20 ; i+ )num = f1 + f2;f1 = f2;f2 = num;cout num endl;return 0; ,用递归处理:,#include using namespace std; int ma

5、in( ) int fib(int n);cout fib(20) endl;return 0; int fib(int n) int num;if(n=1 | n=2) num = 1;else num = fib(n-1) + fib(n-2);return num; ,#include #include using namespace std; int main( ) int i,count;int f20= 1 , 1;coutsetw(8)f0setw(8)f1;count = 2;for ( i = 2 ; i 20 ; i+ )fi = fi-1 + fi-2;coutsetw(

6、8)fi; count+;if(count % 5 = 0) coutendl; return 0; ,若要求输出前20个月的兔子对数。,有些数据要依赖于两个因素才能惟一地确定,例如有3个学生,每个学生有4门课的成绩。 可用二维数组表示:int stu_score34; 其中s23表示第3个学生第4门课的成绩。,5.3 二维数组的定义和引用,定义二维数组的一般形式: 类型标识符 数组名常量表达式常量表达式 例如:float a34 ; 定义a为34(3行4列)的单精度数组,共12个元素。 注意: float a3,4;,5.3.1 定义二维数组,二维数组中元素存放的顺序是:按行存放,即在内存中

7、先顺序存放第一行的元素,再存放第二行的元素。例如:int a34;数组存放的顺序。,该二维数组可以理解为定义了3个一维数组。a0,a1,a2作一维数组名。a01表示a0数组的第1个元素的值。,a为二维数组的首地址; a0,a1,a2分别为第0、1、2行元素的首地址。,float a234; 定义a为 float型三维数组,有234=24个元素。 多维数组元素存放顺序:先变最后一维,再变前一维。,a000 a001 a002 a003 a010 a011 a012 a013 a020 a021 a022 a023 a100 a101 a102 a103 a110 a111 a112 a113 a

8、120 a121 a122 a123,二维数组元素的表示形式为:数组名下标下标 如a23。下标可以是整数表达式,如a24-2。 注意: a2,3,5.3.2 二维数组的引用,使用数组元素时,应该注意下标值不要越界。int a34; /定义3行4列的数组a34=15; /引用a34元素 定义a为34的数组,它可用的行下标值最大为2,列坐标值最大为3。最多可以用到a23,a34就超过了数组的范围。,分行给二维数组赋初值。如: int a34=1 ,2 ,3 ,4,5 ,6 ,7 , 8,9 ,10 ,11 ,12;第1个花括号内的数据赋给第0行的元素,第2个花括号内的数据赋给第1行的元素即按行赋初

9、值。,5.3.3 二维数组的初始化,(2) 将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。如: int a34=1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12;用第2种方法如果数据多,写成一大片,容易遗漏,也不易检查。,(3) 对部分元素赋初值。如:int a34=1 , 0 , 5 , 0 , 0 , 9; 它的作用是只对各行第1列的元素赋初值,其余元素值自动置为0。赋初值后数组各元素为:1 0 0 00 5 0 00 0 9 0,对非0元素少时比较方便,对某几行元素赋初值:int a34=1 , 5 , 6; 数组元素为 :

10、1 0 0 05 6 0 00 0 0 0,若定义时只对部分元素赋初值而省略第一维的长度,则必须分行赋初值。如: int a 4=1 , 0,5 , 0 , 0,9; /数组共有3行。,(4) 如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。如 int a 4=1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12;,表示定义了34的数组a,行数=总个数/ 列数。,int a3=1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12;,5.3.4 二维数组程序举例,例5.8

11、有一个34的矩阵,要求编程序求出所有元素的最大值,以及其所在的行号和列号。要求用函数处理。,思考:有一个34的矩阵,要求编程序求出每行元素的最大值,以及其所在的行号和列号。,1. 用数组元素作函数实参 用数组元素作函数实参与用变量作实参一样,将数组元素的值传送给形参变量。形参是变量,而不是数组。,5.4 用数组名作函数参数,int add(int x,int y) x=2*x;y=2*y;return x+y; int main( ) int a2=3,4;int sum;sum=add(a0,a1);coutsum endl;couta0endl;couta1endl;return 0; ,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号