- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、一维数组的初始化:指在定义数组的同时,给数组元 素赋值。 如: int a[5]={1, 2, 3, 4, 5};
2、如果对全部数组元素赋初值,可以不指定数组长度。 例如:int a[ ]={1,2,3,4,5}; 和int a[5]={1,2,3,4,5}; 相同
程 3、可以只给部分数组元素赋初值。
第1次
8 15
4 4
13 13
61 6 a[10]>a[1], 交换
设
第2次
4 15 8 13 6 a[10]>a[2], 交换
计
第3次
4 15 8 13 6 a[10]<a[3], 不交换
基 础
第4次
4 15 8 13 6 a[10]<a[4], 不交换
第5次
1 15 8 13 6 a[40]>a[5], 交换
而不能写为:
int a[5]=1;
12.03.2021
精品课件
5
Visual C++
一维数组的使用
只能逐个使用数组元素, 而不能一次使用整个数组。
例如:输出有10个元素的数组必须使用循环语句
for(i=0; i<10; i++) cout<<a[i];
而不能用一个语句输出整个数组,下面的写法是错误的;
设 第1次 1 8 15 13 6 4 a[1]>a[2], 交换
计 第2次 1 8 15 13 6 4 a[1]<a[3], 不交换
基 础
第3次 第4次
1 6 15 13 8 4 a[1]>a[4], 交换 1 4 15 13 8 6 a[1]>a[5], 交换
12.03.2021
精品课件
8
Visual C++
程
cout<<a;
序 下面的程序也是错误的:
设
int a[5], b[5]={1,2,3,4,5}; a=b; 同样,数组元素的赋值也只能逐个赋值。
计
int a[3];
基
a[0]=1; a[1]=2; a[2]=3;
础或
for(int i=0;i<3;i++) a[i]=i+1;
பைடு நூலகம்
12.03.2021
精品课件
6
Visual C++
一维数组应用实例(选择法排序)
例:把一组无序的数据(如15, 8, 4, 13, 6, 1)放在数组a[0] ~ a[5]中,要求将其按升序排序(结果应为1, 4, 6, 8, 13, 15)
a[0] a[1] a[2] a[3] a[4] a[5]
程 序
初始状态 15 8
计
void main()
//是合法的。
基 础
{ int n=5; int a[n], b[5.5]; …… } //是错误的。 允许在同一个类型说明中,说明多个数组和多个变量。
例如: int a, b, c, d, k1[10], k2[20];
12.03.2021
精品课件
4
一维数组的初始化
Visual C++
12.03.2021
精品课件
7
Visual C++
一维数组应用实例(选择法排序)
经过第1轮循环后,找到了最小的数1,并将其放到了a[0] 中,下面将找次小的数,并将其放到a[1]中。
第1轮比较结束后的状态:
程
a[0] a[1] a[2] a[3] a[4] a[5]
序 第1轮后 1 15 8 13 6 4 第2轮开始:
一维数组应用实例(选择法排序)
经过第2轮循环后,找到了次小的数4,并将其放到了a[1] 中,依此类推,经过5轮后即可完成排序工作。
a[0] a[1] a[2] a[3] a[4] a[5]
第5轮后最终结果为:
程 序 完成该选择法排序的 设 程序段为: 计 基 础
1 4 6 8 13 15
for(i=0;i<5;i++) for(j=i+1;j<6;j++) if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; }
12.03.2021
精品课件
9
Visual C++
一维数组应用实例(选择法排序)
另一种快速的选择法排序算法为:
初始状态
a[0] a[1] a[2] a[3] a[4] a[5] 15 8 4 13 6
将a[0]和最小的 1数a[5]交换
程 第1轮循环 1
序 设
第2轮循环
1
8 4
4 13 6 15将a[1]和次小的 8 13 6 15数a[2]交换
序 设 计
则定义了一个包含十个元素的数组,分别为a[0], a[1],a[2],……a[9]。C++语言中数组的下标从 0开始;[ ]为下标运算符;“常量表达式”中不
基 能包含变量;数组名的命名必须符合标识符的命
础 名规则。
12.03.2021
精品课件
3
一维数组的定义
Visual C++
对于数组定义应注意以下几点:
设 数组拥有一个公共的名字,称之为数组名。一
计 个数组由若干个元素组成,数组内的每个元素的
基 础
类型必须相同,它们在内存中占据的地址空间也 是连续的。
12.03.2021
精品课件
2
Visual C++
一维数组的定义
一维数组定义的一般形式为: [存储类别] 数据类型 数组名[常量表达式]
程 如: auto int a[10]; 或 static int a[10];
相同作用域内,数组名不能与其它变量名相同,
例如:void main()
{ int a; float a[10]; …… } //是错误的。
方括号中的常量表达式必须有确定的正整数值(不能为变
程
量或实数),可以是符号常量。 例如: #define FD 5
序
void main()
设
{ int a[3+2], b[7+FD]; …… } 但是下述说明方式是错误的:
序 设 计
例如:int a[10]={0,1,2,3,4}; 表示只给a[0]~a[4] 5个元素 赋值,而后5个元素自动赋0值。
4、当将数组定义为全局数组或静态数组时,如不给数组 赋初值,则元素的值全部为0。
基 础
5、只能给元素逐个赋值,不能给数组整体赋值。 例如:给数组元素全部赋1, 只能写为:int a[5]={1,1,1,1,1};
Visual C++
第6章 数组
程
序
本章主要介绍数组的定义及应用,
设 包括一维数组、多维数组和字符数
计 组以及字符串处理函数等。 基
础
数组
Visual C++
C++除提供基本数据类型外,还提供了构造数 据类型,如数组、结构体、共同体和类。
具有相同类型的若干个元素组成的有序集合称
程 为数组。 序 如: int score[30];