第8章数组.ppt
《第8章数组.ppt》由会员分享,可在线阅读,更多相关《第8章数组.ppt(58页珍藏版)》请在三一办公上搜索。
1、第8章 数组,8.1 一维数组的定义、初始化和使用8.2 多维数组的定义、初始化和使用8.3 数组作为函数参数8.4 字符数组8.5 字符串处理函数8.6 数组应用举例作业:3,4,6,12,15,2,8.1 一维数组的定义、初始化和使用,什么是数组?数目固定、类型相同的若干个变量的有序的集合。为什么引入数组?通过数组,可以方便地存储和处理许多同类型数据。,3,1.一维数组的定义,格式:,数据类型 数组名常量表达式;,值必须为正整数,例:int score100;float salary3;bool married2;char name4;,表示元素个数,4,1.一维数组的定义(续),数组的存
2、储特点:在内存中占据一组连续的存储单元。,.,a0,a1,a2,a9,例:int a10;,.,下标的取值范围:0 数组元素个数-1,5,1.一维数组的定义(续),注意点:,用常量:const int num=20;int scorenum;,能否用变量?int num=20;int scorenum;,!数组的大小在编译时必须确定,在程序执行过程中不能改变。,6,2.一维数组的初始化,定义数组时,可以给其中的元素赋初值,称为数组的初始化。,例:int arr5=9,8,7,6,5;,数据类型 数组名个数=元素1初值,元素2初值,;,初始化方法,7,2.一维数组的初始化(续),形式1:对所有元
3、素赋初值。,例如:int a10=0,1,2,3,4,5,6,7,8,9;,8,2.一维数组的初始化(续),形式1:对所有元素赋初值。,例如:int a10=0,1,2,3,4,5,6,7,8,9;,int a=0,1,2,3,4,5,6,7,8,9;,可省略大小,编译器根据初值表中元素的个数自动确定数组的大小,9,2.一维数组的初始化(续),形式2:对部分元素赋初值。,例如:int b8=1,2,3,4,5;,只给前面部分元素赋初值时,后面其余元素的初值自动赋为0,10,3.一维数组的使用,使用数组中某一个元素的格式:数组名下标表达式,例如:int a10;a0=1,a9=2;,11,3.一
4、维数组的使用(续),越界问题若一个数组含有n个元素,访问元素时,必须保证下标表达式的值是从0到n-1之间的整数。如果表达式的值超出该范围,这种现象称为越界。,例如:int a5;a5=3;,数组存储空间之外的内存单元,错误!,12,3.一维数组的使用(续),两个数组的相互赋值,int a5=1,2,3,4,5,b5;b=a;,for(int i=0;i5;i+)bi=ai;,/错:数组之间不能直接相互赋值。,13,3.一维数组的使用(续),如何输入数组?,int score5;cin score;,int score5;for(int i=0;i scorei;,14,3.一维数组的使用(续)
5、,如何输出数组?,int a5=1,2,3,4,5;couta;,int a5=1,2,3,4,5;for(int i=0;i5;i+)coutai;,15,4.一维数组的应用举例,例8.1 用一维数组存放前20个斐波那契(Fibonacci)数并输出。斐波那契数的第一和第二个数分别为0和1,从第三个开始,每个斐波那契数是前两个斐波那契数的和。,#includevoid main()int fib20=0,1;/定义数组,并初始化 for(int i=2;i20;i+)/通过循环依次访问数组元素 fibi=fibi-1+fibi-2;/置当前元素为前两元素之和 for(i=0;i20;i+)/
6、输出前20个斐波那契数 coutfibi;,16,例8.2 某学校有若干名学生参加了100米短跑测试,成绩分别为13.6、14.8、12.0、12.7、15.6、13.4、14.9、12.6秒,求出其中最快和最慢的成绩。,#includevoid main()double score=13.6,14.8,12.0,/100米短跑成绩 12.7,15.6,13.4,14.9,12.6,max=score0,/记录当前最慢成绩 min=score0;/记录当前最快成绩 int len=sizeof(score)/sizeof(double);/计算数组大小 for(int i=1;imax)max
7、=scorei;else if(scoreimin)min=scorei;cout最快成绩:min秒,最慢成绩:max秒n;,17,8.2 多维数组的定义、初始化和使用,1二维数组的定义 数据类型 数组名常量表达式1常量表达式2 例:int a34;float data44;,18,理解二维数组,二维数组可以看作一种特殊的一维数组,它的每个元素又是一个一维数组。二维数组在内存中的存储:按行存放。,19,2.二维数组的使用,引用数组元素的一般形式:数组名行标列标访问二维数组的每个元素,一般通过二重循环。例如:int x23;for(int i=0;i2;i+)for(int j=0;j3;j+)
8、xij=i*3+j+1;,20,3.二维数组的初始化,分行给二维数组赋值。int a23=1,2,3,4,5,6;去掉行的界限赋初值。int a23=1,2,3,4,5,6;如果对数组的全部元素都赋初值可以省略第一维的大小。int a3=1,2,3,4,5,6;也可只对部分元素赋初值而省略第一维大小,但应分行赋初值。int b4=3,3,3,1,3;,21,4.二维数组应用举例,例8.3 某超市有4个连锁店,定义二维数组存放各店2006年各个季度的销售额,计算各店一年的销售总额。#include void main()double sales45=0;,22,for(int i=0;isale
9、sij;salesi4+=salesij;cout一季度t二季度t三季度t四季度t总额n;for(i=0;i4;i+,coutendl)for(int j=0;j5;j+)coutsalesijt;,23,8.3 数组作为函数参数,1数组元素作为函数的实参 若函数的形参是普通变量,则调用该函数时可以用数组元素做实参,参数的结合属于按值传递。例8.5 数组元素作为函数的实参。#includeinline int square(int x)return x*x;,24,void main()int a52,i;for(i=0;i5;i+)ai0=i+1;ai1=square(ai0);/数组元素做
10、square函数的实参 for(i=0;i5;i+)coutai0tai1n;,25,2一维数组作为函数的参数,数组名代表该数组所占内存的起始位置值。若一维数组做函数的形参,则调用该函数时,相应的实参用数组名。用数组名作函数实参时,传递给形参的是实参数组所占内存的起始位置值,这样两个数组就合用实参数组的内存单元。,mul函数中,main函数中,合用内存,26,例8.6 设计一个函数,完成数与向量的乘法运算。,#includevoid mul(int a,int size,int n)for(int i=0;isize;i+)ai*=n;void main()int i,x8=1,2,3,4,5
11、,6,7,8;for(i=0;i8;i+)coutxit;coutendl;mul(x,8,2);for(i=0;i8;i+)coutxit;,27,例8.7 设计一个函数,计算一维整型数组元素总和。,#includeint sum(int a,int size)/size为形参数组大小 int total=0;/存放总和,置初值0 for(int i=0;isize;i+)/逐个访问元素 total+=ai;/累加 return total;void main(void)int a=1,2,3,4,5,6,7,8,9,10,b=78,90,98,76,82;cout数组a的元素之和:sum(
12、a,sizeof(a)/4)endl;cout数组b的元素之和:sum(b,sizeof(b)/4)endl;,28,3二维数组作为函数的参数,void Transpose(int a4,int n)for(int i=0;in;i+)for(int j=i;j4;j+)int t=aij;aij=aji;aji=t;,例8.8 设计程序,将一个4行4列的二维数组a中行和列元素互换。,应明确指明列数,此处指定行数无效,需另设参数指定行数,29,8.4 字符数组,字符数组:元素是字符的数组。字符数组初始化:char s13=c,a,r;char s24=c,a,r,0;char s2=“car”
13、;/字符串后自动加0 char s2=“car”;/字符串后自动加00:字符串字符串结束标志。主要用于字符串的处理和输出。,30,字符数组的输入和输出:可整体进行。char s420;cins4;/输入一个字符串存入s4数组 couts4;/输出s4数组中存放的字符串运行时若输入:Jiangsu China 则输出为:Jiangsu 而不是 Jiangsu China注意:cin输入时,若遇空白符,则认为字符串结束。输出时,若遇字符0,则认为字符串结束。,31,函数cin.getline():用于输入包含空白符的字符串。第一个参数:字符数组名;第二个参数:允许输入的最多字符个数。例8.9 使用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组
链接地址:https://www.31ppt.com/p-4826662.html