- 2
- 0
- 约2.56万字
- 约 59页
- 2018-04-30 发布于河南
- 举报
c程序设计谭浩强第5章2013修订
第五章 数 组
5.1 数组的概念(P128)
在解决实际问题时,往往会需要处理一批具有相同的数据类型并且关系密切的变量。
例如:对一个班的学生成绩进行处理,计算其个人平均成绩、学科平均成绩,个人名次排序等。
数组是具有一定顺序关系的若干变量的集合体,组成数组的变量成为该数组的元素变量,简称元素。
在C++中,数组的元素变量用数组名后面跟上带有方括号[ ]的下标表示。
如:a[10],data[20],s[30],b[5][6];
其中带有一个方括号的称为一维数组,带有两个以上方括号的称为二维数组、三维数组等,统称为多维数组。方括号中的下标用来表示元素在数组中的位置。
数组在内存中连续分配一片存储单元
见P128图5.1
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
2000 2002 2004 2006 2008 2010 2012 2014
5.2 一维数组的定义和引用
一、一维数组的定义
1.一维数组的定义格式:
类型标识符 数组名 [ 常量表达式 ]
例如: int data[20]
表明定义了一个名字叫data,长度为20的整型一维数组,即该数组有20个整数类型的元素,可以用来存储20个整数类型的数据。
2.说明:
①数组名的命名应符合标识符的命名规则;
②数组名后面方括号内的数据是数组的长度,也即是数组元素的个数,它可以是常量,也可以是常量表达式,但必须是整型。不能是变量或变量表达式(即不允许作动态定义)。
③C编译系统为数组分配连续的存储单元,数组元素的相对次序由其下标来表示。下标从0开始。
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]
一般的,含有n个元素的数组,其下标范围实0 -(n-1)
④相同类型的数组,可以放在一个说明行中,数组之间用逗号分隔。
二、一维数组的初始化
例如: int s[5]={ 0,1,2,3,4 }
说明:
①将数组元素的初值放在一对花括号中,所赋初值的类型必须与定义数组的类型一致,各个初值之间用逗号分隔;系统将按初值的顺序,顺次给数组元素赋值;
②所赋初值的个数不能超过数组元素的个数(数组的长度),但可以少于数组元素的个数,此时相当于给数组的前一部分元素赋值,而后面的元素由系统自动地赋值为0;
例如: int a[5]={1,2,3}
相当于:a[0]=1,a[1]=2,a[2]=3,a[3]=0,a[4]=0,
注:若需要将数组全部元素初始化为0值,可以用如下形式实现:int a[10]={0};
问:int?a[10]={1}; 其初始化值为?
③若给数组的所有元素赋初值,可以省略数组的长度,
例如: int ar[ ]={ 3,2,4,6,8}
相当于: int ar[5]={3,2,4,6,8}
④若在数组定义之后,再初始化数组,则不能成组赋值,只能一次给一个元素赋值。
例如: int w[4];
w[4]={23,2,34,5}
是错误的赋值方式。
三、一维数组的引用
数组必须先定义,然后再使用。C++规定,数组整体不能参加数据处理,即不能向数组整体赋值,数组作为一个整体也不能参加各种运算,参加数据处理和运算的只能是数组元素。
数组元素的表示形式为:
数组名 [下标]
其中,下标可以是整数类型的常量、变量或表达式。
例5.1 输入10个整数,并按其逆序输出。
#include iostream
using namespace std;
int main()
{ int i,a[10];
for (i=0;i10;i++)
{ coutplease input “ i+1”data:;
cina[i];
}
for (i=9;i=0;i--)
couta[i]” “;
coutendl;
return 0;
}
例5.2 编写程序,输入10个整数,求出其中的最大值与最小值并输出。
#include iostream
using namespace std;
int main()
{ int x[10], i, max, min;
coutplease enter;
for(i=0;i10;i++)
cinx[i];
max=min=x[0];
for(i=1;i10;i++)
{ if(x[i]max) max=x[i];
if(x[i]min) min=x[i];
}
coutmax=”
您可能关注的文档
- 2013年度糯东煤矿应急救援培训工作计划.doc
- 2013年文化艺术节闭幕词.doc
- 2013年新年贺辞(大架子基本上不用修改填些内容直接可用).docx
- 2013年河南农信社面试真题.doc
- 2013年益阳房地产市场走势预判及展望.docx
- 2013年秋二年级语文科质量分析.doc
- 2013年皮带长廊安全协议.doc
- 2013年秋期教研工作总结.doc
- 2013年第一季度安全生产例会主持词.doc
- 2013年职称英语(理工类)新增阅读理解及翻译(必考).doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
原创力文档

文档评论(0)