C++程序设计(第6章)

上传人:油条 文档编号:48811383 上传时间:2018-07-20 格式:PPT 页数:65 大小:402.50KB
返回 下载 相关 举报
C++程序设计(第6章)_第1页
第1页 / 共65页
C++程序设计(第6章)_第2页
第2页 / 共65页
C++程序设计(第6章)_第3页
第3页 / 共65页
C++程序设计(第6章)_第4页
第4页 / 共65页
C++程序设计(第6章)_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《C++程序设计(第6章)》由会员分享,可在线阅读,更多相关《C++程序设计(第6章)(65页珍藏版)》请在金锄头文库上搜索。

1、第6章 数组n本章学习重点掌握内容:n一维数组的定义和应用n二维数组及多维数组的定义和应用n字符数组的定义和应用n向函数传递数组元素、一维数组、二维 数组、多维数组的应用n与数组有关的典型算法和应用 Date1第6章 数组n6.1 数组的概念n6.2 一维数组的定义及应用n6.3 字符数组的定义及应用n6.4 二维数组n6.5 向函数传递数组n6.6 数组应用实例Date26.1 数组的概念611 数组与数组元素数组类型是一种构造型(组合型)的数据类型。 数组是由一组具有相同数据类型的元素组成的集 合。数组的类型就是这组元素的数据类型。构成数组 的这组元素在内存中占用一组连续的存储单元。可以

2、用一个统一的数组名标识这一组数据,而用下标来指 明数组中各元素的序号。n要寻找一个数组中的某一个元素必须给出两个要素 ,即数组名和下标。数组名和下标唯一地标识一个数 组中的一个元素。Date36.1 数组的概念n引入数组就不需要在程序中定义大量的变量 ,大大减少程序中变量的数量,使程序精炼, 而且数组含义清楚,使用方便,明确地反映了 数据间的联系。n许多好的算法都与数组有关。熟练地利用数 组,可以大大地提高编程和解题的效率,加强 了程序的可读性。 Date46.1数组的概念6.1.2 数组的维数 象数列一样,能够用一个下标决定元素位置的 数组称为一维数组;如同矩阵,能够用两个下标决 定元素位置

3、的数组称为二维数组;类同N维向量, 需要由N个下标才能决定元素在数组中的位置,这 样的数组称为N维数组。 二维和二维以上的数组称为多维数组,常用的 是一维和二维数组。 Date56.2 一维数组的定义及应用6.2.1一维数组的定义和初始化 1. 一维数组的定义 类型 数组名常量表达式; 类型是数组类型,即数组中各元素的数据类型,可 以是整型、浮点型、字符型等基本类型。 数组名是一个标识符,代表着数组元素在内存中的 起始地址,它的命名规则与变量名的命名一样。常量表达式又称下标表达式,表示一维数组中元素 的个数,即数组长度(也称为数组大小),用一对方 括号“ ”括起来。方括号“ ”的个数代表数组的

4、维数 ,一个方括号表示一维数组。 int bn; Date66.2 一维数组的定义及应用2. 一维数组的初始化类型 数组名常量表达式=值1,值2,值n (1) 在定义数组时分别对数组元素赋予初值。例如int b10=0,1,2,3,4,5,6,7,8,9; (2) 可以只给一部分元素赋值。例如int b10=0,1,2,3,4; Date76.2 一维数组的定义及应用(3) 如果想使一个数组中全部元素值为1,可以写成 int b10=1,1,1,1,1,1,1,1,1,1; 不能写成 int b10=1*10; 不能给数组整体赋初 值。(4) 在对全部数组元素赋初值时,可以不指定数组长度。 例

5、如 int b5=1,2,3,4,5; 可以写成 int b=1,2,3,4,5;Date86.2 一维数组的定义及应用6.2.2 一维数组的操作 1. 数组元素的引用 数组名下标 下标可以是整型常数或整型表达式。 b2+1、bi+j等(i和j为整型变量)。例如: b2=10; b5=b 2; cout数组名下标; 对数值型数组只能使用这一种形式,每次只能对一 个数组元素输入值不能输入整个数组。数组的输入往 往是利用循环结构实现的。例如: float c15; for(int i=0;ici;Date116.2 一维数组的定义及应用4. 用流命令输出数组元素 其语法格式为: cout void

6、 main() float ave,score50;float sum=0;int i,count;coutscorei;for(i=0;i #include #include const int SIZE=10; void main() int arrSIZE;int i,high,low,n=0,sum=0;float average;srand(time(0);for(i=0; ihigh) high=arri; if(arri averagecout #include int main( ) int i;int f20=1,1; for(i=2;i int main( ) int a1

7、0;int i,j,t;coutai;coutai+1) /如果前面的数大于后面的 数 t=ai;ai=ai+1;ai+1=t; /交换两个数的位置,使小 数上浮coutai; (2) 将整个字符串一次输入或输出。例如 : char str20; cinstr; /用字符数组名输入字符 串 cout字符串2,函数值为一正整数。 (3) 如果字符串1 #include int main() cina; int i,n; char a30,temp; cout #include void main( ) char str140,str220; /定义字符数组str1、str2cout void m

8、ain( ) char str140,str220; /定义字符数组str1、str2int i,j;cout void main() static char diamond5= , ,*, ,*, ,*, *, , , ,* , ,*, ,*, , ,*;int i,j;for (i=0;i #include void main( ) char str320,string20; int i;cout0) strcpy(string,str0);else strcpy(string,str1);if (strcmp(str2,string)0) strcpy(string,str2);cout

9、 using namespace std; int main( ) int a23=1,2,3,4,5,6;int b32,i,j; cout using namespace std; int main( ) int i,j,row=0,colum=0,max;int a34=5,12,23,56,19,28,37,46,-12,-34,6,8;6.4 二维数组Date446.4 二维数组max=a00; /使max开始时取a00的值 for (i=0;imax) /如果某元素大于max max=aij; /max将取该元素的值 row=i; /记下该元素的行号i colum=j; /记下该元

10、素的列号j cout int main() const int n=3,m=4; int i,j,max,maxj,anm=1,2,3,13,5,6,7,8,9,10,11,12;bool flag;6.4 二维数组Date466.4 二维数组for (i=0;imax) max=aij; maxj=j; flag=true; for (int k=0;kakmaxj) flag=false; continue; if(flag) cout #include #include #define N 5 #define M 5 void main(void) float sNM;float sum

11、; int i,j;coutsij; for (i=0;i void main( ) int max_value(int x,int max); /函数声明int i,j,row=0,colum=0,max;int a34=5,12,23,56,19,28,37,46, -12,-34,6,8; /数组初始化max=a00;for (i=0;imax) return x; /如果xmax,函数返回值为x else return max; /如果xmax,函数返回值为max Date516.5 向函数传递数组6.5.2 向函数传递一维数组当用数组名作为函数的实参和形参时,传递的是 数组的地址。即

12、把实参数组的起始地址传送给形参数 组,这样形参数组就和实参数组共占同一段内存单元 ,当形参值发生变化时,实参值也发生变化。 (1)实参数组与形参数组类型要一致。 (2)形参数组的长度不要超过实参数组的长度。 实参数组必须定义为具有确定长度的数组,而形参数 组可以不定义长度,只在数组名后跟一个空的方括号 ,在被调用的函数中另设一个参数用来传递元素的个 数。Date526.5 向函数传递数组【例6.14】 用选择法对数组中10个整数按由小到 大排序。选择法的基本思想是:从待排序的数据元素集合中选取关键字最小的数 据元素并将它与原始数据元素集合中的第一个数据元 素交换位置;从不包括第一个位置上数据元

13、素的集合中选取关 键字最小的数据元素并将它与原始数据元素集合中的 第二个数据元素交换位置;如此重复,直到数据元素集合中只剩下一个数据 元素为止。 Date536.5 向函数传递数组#include int main( ) void selectsort(int array,int n); int a10,i; coutai;cout void input(int x,int n) int i;for(i=0;ixi; void insertsort(int a,int n) int i,j,k; for(i=0;i-1 int main( ) int max_value(int array4)

14、;int a34=11,32,45,67,22,44,6 6,88,15,72,43,37;coutmax) max=arrayij;return max; Date576.5 向函数传递数组【例6.17】 有5个字符串,要求找出 其中最大者。要求用函数调用。 程序如下: #include #include using namespace std; int main( ) void max_string(char str30,int i); /函数声明 int i;char countryname530;for(i=0;icountrynamei; /输入3个国家名max_string(countryname,5); /调用max_string函数return 0; void max_string(char str

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

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

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