资源描述:
《第4章数组和字符串 - 副本.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第四章数组和字符串1教学目标(1)掌握数组的定义、初始化和引用方法;(2)了解数组在数值计算、数据统计、排序和数据检索方面的应用;(3)了解字符串与字符数组的概念,会对于字符串进行整体输入输出。2基本内容4.1数组4.1.1一维数组4.1.2二维数组4.2字符数组4.2.1字符数组的定义、初始化和输入与输出4.2.2字符串处理函数3构造数据类型问题的引出:实际应用的程序设计中,只用几个变量的情况是极少的;更多的情况是处理大批量的相同类型或不同类型的数据。相同类型数据举例:统计全校15,000学生英语4级统考成绩;不同类型数据举例:管理全校15,00
2、0学生学籍信息记录,每条记录信息包括:姓名、学号、出生日期、班级、各科成绩等。用什么样的数据结构来描述这类应用更简洁?44.1数组数组:具有相同类型的数据的集合。数组用数组名来标识。其中的每个变量(数组元素)通过该变量在数组中的相对位置(下标)来引用。特点:常用于处理大批量数据;数据特点:存在内在联系;数组——具有相同数据类型的变量集合;这些变量都有相同名字,但下标不同;称这些变量为数组元素;只有一个下标——一维数组;有两个下标——二维数组。5数组说明与变量相同。数据类型数组名[整型常数表达式][……][,…..]例:intarray[10];//说明
3、了一个有10个元素的整型数组doublematrix[20][20];//说明了一个20行20列的浮点型矩阵特点:数组名定名规则和变量名相同,遵循标识符定名规则。数组名后是用方括号起来的常量表达式,不能用圆括号错误用法:inta(10);方括号中的下标表示元素在数组中的位置。下标从0开始,必须是整型常量。6(1)一维数组存储结构逻辑结构:由一串数据构成的向量表,每个元素的下标值确定了各元素在此数据表中的位置。A[5]排序次序为:A[0],A[1],A[2],A[3],A[4]存贮结构:数组元素存放为一片连续的存储单元,其元素在内存中的存放顺序与逻辑结构
4、是一致的;即所谓“逻辑上相邻,物理上也相邻”。A[5]的存储结构为:A[0]A[1]A[2]A[3]A[4]7一维数组的初始化在定义数组时对数组元素赋以初值。例如:inta[10]={0,1,2,3,4,5,6,7,8,9};如果想使一个数组中全部元素值为0,可以写成inta[10]={0,0,0,0,0,0,0,0,0,0};不能写成inta[10]={0*10};即不能给数组整体赋初值(C++不允许对一个数组进行聚集操作)。在对全部数组元素赋初值时,可以不指定数组长度。例如:inta[5]={1,2,3,4,5};可以写成inta[]={1,2,3
5、,4,5};在第二种写法中,花括号中有5个数,系统会据此自动定义a数组的长度为5。8例:找出一维数组中的最大数。算法分析:假设数组中第1个元素最大,令big=array[0]将array[i](0<=iusingnamespacestd;intmain(){intarray[7];cout<<"Pleaseinputanarray
6、withsevenelements:"<>array[i];intbig=array[0];for(intj=0;j<7;j=j+1)if(array[j]>big)big=array[j];cout<<"max="<7、][2]存贮结构:“按自然顺序”在内存中分配存贮单元M数组在内存中排列如下:M00M01M02M10M11M12M20M21M2211二维数组初始化按照二维数组元素的物理存储次序给所有或部分数组元素提供数据值intscore[3][4]={85,87,93,88,86,90,95,89,78,91,82,95};以行结构方式提供各数据值intscore[3][4]={{85,87,93,88},{86,90,95,89},{78,91,82,95}};C++语言允许在为二维数组初始化时省略行下标值,但列下标值不能省略。intmatrix[][4]={8
8、5,87,93,88,86,90,95,89,78,91,82,95};12例:有一个3×4的