C++数组、指针与字符串

上传人:飞*** 文档编号:57306664 上传时间:2018-10-20 格式:PPT 页数:106 大小:655KB
返回 下载 相关 举报
C++数组、指针与字符串_第1页
第1页 / 共106页
C++数组、指针与字符串_第2页
第2页 / 共106页
C++数组、指针与字符串_第3页
第3页 / 共106页
C++数组、指针与字符串_第4页
第4页 / 共106页
C++数组、指针与字符串_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《C++数组、指针与字符串》由会员分享,可在线阅读,更多相关《C++数组、指针与字符串(106页珍藏版)》请在金锄头文库上搜索。

1、1,数组 指针与字符串,C+语言程序设计,2,本章主要内容,数组 指针 动态存储分配 指针与数组 指针与函数 字符串,3,数组的概念,数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。 数组属于构造类型。,数 组,4,一维数组的声明与引用,一维数组的声明 类型说明符 数组名 常量表达式 ;,引用 必须先声明,后使用:数组名下标 下标是从 0 开始,可以是整数或整型表达式。 只能逐个引用数组元素,而不能一次引用整个数组 例如:a0=a5+a7-a2*3 +语言不检查下标是否出界,所以要特别注意,数 组,例如: int a10; 表示a为整型数组,有10个元素:a0

2、.a9 const int N=10; int xN, yN+1;,5,例6. 1一维数组的声明与引用,#include using namespace std; int main() int A10,B10;int i;for(i=0;i10;i+)Ai=i*2-1;B10-i-1=Ai;,数 组,for(i=0;i10;i+)cout“A“i“=“Ai;cout“ B“i“=“Biendl; ,6,一维数组的存储顺序,数组元素在内存中顺次存放,它们的地址是连续的。 例如:具有10个元素的数组 a,在内存中的存放次序如下:,数组名字是数组首元素的内存地址。 数组名是一个常量,不能被赋值。,数

3、 组,LOC( ai ) = 数组起始地址 + i * 元素长度,7,一维数组的初始化,可以在编译阶段使数组得到初值: 在声明数组时对数组元素赋以初值。 例如:static int a10=0,1,2,3,4,5,6,7,8,9; 可以只给一部分元素赋初值,其余元素自动初始化为 0 。 例如:static int a10=0,1,2,3,4; 在对全部数组元素赋初值时,可以不指定数组长度。 例如:static int a =1,2,3,4,5,数 组,8,#include using namespace std; int main() int i;static int f20=1,1; /初始

4、化第0、1个数for(i=2;i20;i+) fi=fi-2+fi-1; /求第219个数for(i=0;i20;i+) /输出,每行5个数 if(i%5=0) coutendl;cout.width(12); /设置输出宽度为12cout ai;max=min=a0; /初始取值都为第一个数值for (i=1;imax ) max=ai;else if ( aimin ) min=ai;cout “最大值=“ max endl;cout “最小值=“ min x;for ( i=0; iN; i+ ) /从第 1 个数开始,依次进行比较直到最后一个数为止 if ( x = datai ) /

5、查找成功break;/查找结果if ( iN ) cout “n存在该数!“ n n;elsecout “n不存在该数!“ n n;,13,14,分析(由大小排序) N 个原始数据 dn 选最大数 d0 : 第一个数据 d0 依次与后面的数据 d1 dn-1 进行比较,如果小则交换 选第 2 大数 d1 : 第二个数据 d1 依次与后面的数据 d2 dn-1 进行比较,如果小则交换 以此类推,重复做 n-1 遍 输出排序结果,例:一般排序方法,#include using namespace std; void main()const int N = 11;int data N = 406,

6、727, 537, 425, 626, 508, 594, 603, 641, 347, 112 ;int i, j, temp; for ( i=0; iN-1; i+) /比较 N-1 趟 for ( j=i+1; jN; j+) /第 i 趟比较,第i个数据依次与后面的数比较if ( dataidataj ) /大数为第i个数据temp = dataj;dataj = datai;datai = temp;cout “ “ datai; /输出第i个大数cout “ “ datai; /输出最后一个大数cout n sti0;cout sti1;cout sti2;sti3=( sti0

7、+sti1+sti2 ) / 3; /计算该生平均分cout “n语文t英语t计算机t平均分n“;for (i=0;i5;i+)cout sti0 t sti1 t sti2 t sti3 n;cout endl;,21,22,数组作为函数参数,数组元素作实参,与单个变量一样。 数组名作参数,形、实参数都应是数组名,类型要一样,传送的是数组首地址。对形参数组的改变会直接影响到实参数组。,数 组,23,例: 使用数组名作为函数参数,设计一个函数可以计算一维数组里所有元素值的和,数 组,#include using namespace std; int sum (int A, int n) /用n

8、接收数组的大小 int s=0;for (int i=0; in ; i+) /将数组里的数据汇总s+=ai;return s; /将汇总值返回给主程序 void main() int score10=90,82,88,78,100,95,87,72,91,85;cout “The sum is “ sum(score,10);cout endl endl; ,24,25,例6-2 使用数组名作为函数参数,主函数中初始化一个矩阵并将每个元素都输出,然后调用子函数,分别计算每一行的元素之和,将和直接存放在每行的第一个元素中,返回主函数之后输出各行元素的和。,数 组,#include using

9、namespace std; void RowSum(int A4, int nrow) int sum;for (int i = 0; i nrow; i+)sum = 0;for(int j = 0; j 4; j+)sum += Aij;cout “Sum of row “ i “ is “ sum endl;Ai0=sum; ,26,int main() int Table34 = 1,2,3,4,2,3,4,5,3,4,5,6;for (int i = 0; i 3; i+) for (int j = 0; j 4; j+)cout Tableij “ “;cout endl;RowSum(Table,3);for (int i = 0; i 3; i+)cout Tablei0 ,27,运行结果: 1 2 3 4 2 3 4 5 3 4 5 6 Sum of row 0 is 10 Sum of row 1 is 14 Sum of row 2 is 18 10 14 18,28,29,对象数组,声明: 类名 数组名元素个数; 访问方法: 通过下标访问数组名下标.成员名,

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

当前位置:首页 > 行业资料 > 其它行业文档

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