第4章数组的应用.pptx
文本预览下载声明
第4章 数组的应用主要内容数组的概念数组的定义、初始化和存储数据对一维数组操作对二维数组操作字符串类的应用典型例题问题的引出示例:编程实现求n个学生的“计算机程序设计”课程平均成绩。当n=3: #includeiostreamusing namespace std;void main( ){ float stua, stub, stuc, avg; cout请依次输入三位同学的成绩:; cinstuastubstuc; avg=(stua+stub+stuc)/3.0; cout.precision(4); cout平均成绩是:avgendl;}当n=10当n=50当n=2000如何处理?问题的引出实际应用的程序设计中,只用几个变量的情况是极少的;更多的情况是处理大批量的相同类型或不同类型的数据。用什么样的数据结构来描述这类应用更简洁呢?学号成绩2012282488 2012282591 2012283081 2012283184 2012284584 2012284788 2012285390 2012285485 具有一定顺序关系的若干相同类型数据的集合体4.1 数组的概念、定义及引用 数组是具有一定顺序关系的若干相同类型数据的集合体,数组属于复合类型。 数组用数组名来标识。一个数组名用来表示一组同类型的数据,这批同类型的数据被称为数组元素或分量。 数组描述的是顺序数据结构,即数组元素在逻辑上相邻,在物理上也相邻,即在内存中它们是连续存放的。 数组和变量一样,必须先定义,后使用。数组的定义和引用定义的格式:类型说明符 数组名[常数表达式][……][,…..];通常为int、float、double等数组元素的个数数组可以是一维、二维或多维数组,是几维数组,数组名右边就有几对方括号,分别确定各维的长度(元素个数)。如int a[5];int a[3][4];数组与数组元素及其存储方式int fibon[10]={0,1,1,2,3,5,8,13,21,34}; 数组名为fibon,这是一个包含10个元素的整型一维数组,其第一个元素为fibon[0],存放0,最后一个元素为fibon[9],存放34。 数组元素的访问方式: 通过下标操作符(subscript),按元素在数组中的位置进行访问,称为索引访问(indexing)或下标访问(subscripting)。例如:a=fibon[3]; //第4个元素01 2 3 21 34fibon[0] fibon[1] fibon[2] fibon[3] fibon[8] fibon[9] 数组在内存中的存储注意数组是一种复合类型,是不能作为一个整体进行访问和处理的,只能按元素进行个别的访问和处理。 C++数组第一个元素的下标为0,而不是1,且下标表达方式是固定的。数组名的构成方法与一般变量名相同。4.2 一维数组1. 一维数组的声明类型说明符 数组名[ 常量表达式 ]; 例如:int a[10]; 表示 a 为整型数组,有10个元素:a[0]...a[9]2. 一维数组的引用必须先声明,后使用。只能逐个引用数组元素,而不能一次引用整个数组。例如:a[0]=a[5]+a[7]-a[2*3];以下程序有错吗?#includeiostreamusing namespace std;void main( ){ int n=5; int a[n]; a[0]=2; a[5]=6; couta[0] a[5]endl;}[ ]中必须是常量表达式。可改成:const int N=5; int a[N];最后一个元素的下标为4。a[5]是不合法的。1.一维数组的声明与引用#include iostreamusing namespace std;void main( ){ int A[10],B[10]; int i; for(i=0; i10; i++) { /*利用循环语句给数组元素逐个赋值*/ A[i]=i*2-1; B[9-i]=A[i]; } for(i=0; i10; i++) { /*利用循环语句逐个输出数组元素的值*/ coutA[i ]=A[i]; cout B[i ]= B[i]endl; }}2.一维数组的存储顺序a[0]0x2000a[1]0x2004a[2]0x2008a[3]0x200Ca[4]0x2010数组元素在内存中是从低地址开始顺序存放的,各元素的存储单元占用内存大小相同,它们的地址是连续的。各元素的存储单元之间没有空隙,可以从数组第一个元素存储单元的起始地址计算出任意一个元素存储单元的起始地址。数组名字a是数组首元素的内存地址。3.一维数组的初始化在声明数组的同时可以对数组元素赋初始值 例如:int a[5]={0,1,2,3,4};
显示全部