欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++数组课件.ppt

    • 资源ID:24463842       资源大小:794.50KB        全文页数:57页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++数组课件.ppt

    本章要点1、数组的定义格式2、数组元素引用的格式3、数组的赋值与初始化4、数组与函数5、字符数组6、字符串数组数组是由一组具有相同数据类型的元素组成的集合。数组的类型就是这组元素的数据类型。构成数组的这组元素在内存中占用一组连续的存储单元。可以用一个统一的数组名标识这一组数据,而用下标来指明数组中各元素的序号。一维数组的定义语法格式:类型类型 数组名数组名常量表达式常量表达式; 如: char a5; int b10; const int size=10; int csize;注意注意:在定义数组时,不能用变量来描述数组定义中的元素个数。例如,下面的定义方式是不合法的: int n; cinn; int bn; 数组名是代表数组元素首地址的符号常量例 对于 char a10a的内容是一个地址,也就是a0的地址;在定义a10之后a为一个表示地址的常量。一维数组的存储 用数组名加下标值就可以访问数组中对应的某个元素。下标值从0开始,因此对于一个具有n个元素的一维数组来说,它的下标值是0 n-1。 数组元素在内存中是顺序存储的。对于一维数组,就是简单地按下标顺序存储。 如:int b5; b0b1 b2b3b4一维数组的初始化语法格式为:类型类型 数组名数组名 数组范围数组范围 =值值1,值,值2,值,值n;例如:char a5=a,b,c,d,e;或:char a =a,b,c,d,e; int c5=1,2;当数组长度与初始化元素的个数不相等时,数组长度不能省去不写,如上例不能写为:int c =1,2;字符数组初始化: char d6= h , e , l , l , o , 0 ; char d6=”hello”; 三种等价 char d6=”hello”;数组元素的赋值由于数组名是常量,数组元素是变量,所以对数组的赋值只能针对数组元素,并且必须逐一赋值。例 int mydata5; mydata0=3; mydata1=78; mydata2=54; mydata3=90; mydata4=6;mydata=3,78,54,90,6是错误的!若要在数组之间进行赋值,也只能逐一地赋值。 for (i=0;i数组名;数组名; 或 cin数组名数组名下标下标;如:对一个大小为5的字符型数组a赋值,可以用下列两种方式:char a5; cina; /一般只针对字符数组 或char a5;int i;for (i=0;iai;数组元素的赋值数组元素的引用引用形式为:数组名数组名下标下标 下标可以是整常数或整型表达式。例如a2+1、ai+j等(i和j为整型变量)。例如:a2=10; /将10赋给数组中的a2元素。a5=a2; /将a2元素的值赋给a5元素couta5; /打印a5元素的值数组越界 在给数组元素赋值或对数组元素进行引用时,一定要注意下标的值不要超过数组的范围,否则会产生数组越界问题。因为当数组下标越界时,编译器并不认为它是一个错误,但这往往会带来非常严重的后果。 例如:定义了一个整型数组a:int a10; 数组a的合法下标为09。如果程序要求给a10赋值,将可能导致程序出错,甚至系统崩溃。 可以使用下式预防越界:可以使用下式预防越界: sizeof(a)/sizeof(int)一维数组例#include using namespace std;void showVal ( int num );int main ( ) int testArr 5 = 5, 10, 15, 20, 25 ; for ( int ct = 0; ct 5; ct+ ) showVal ( testArr ct ); return 0;void showVal ( int num ) cout num “ “;一维数组例#include using namespace std;int main( ) int i,a10; for (i=0;i=0;i-) coutai ; coutendl; return 0;一维数组例#include using namespace std; int main() int age5; /数组声明数组声明 int sum=0; for(int i=0;i5;i+) coutagei; /写数组元素写数组元素 sum+=agei; coutThe average is:sum/5.0endl; return 0; 一维数组例#include using namespace std;int main() int age=18,20,17,21,19; /数组初始化数组初始化 int sum=0; for(int i=0;i5;i+) sum+=agei; coutThe average is:sum/5.0endl; return 0;一维数组例编写程序,用冒泡法对编写程序,用冒泡法对10个数排序个数排序(按由小到大顺序按由小到大顺序)。一维数组例#include using namespace std;int main( ) int a11; int i,j,t; coutinput 10 numbers :endl; for (i=1;iai; coutendl; for (j=1;j=9;j+) /共进行共进行9趟比较趟比较 for(i=1;iai+1) /如果前面的数大于后面的数如果前面的数大于后面的数 t=ai;ai=ai+1;ai+1=t; coutthe sorted numbers :endl; for(i=1;i11;i+) /输出输出10个数个数 coutai ; coutendl; return 0;#includeusing namespace std;int main()int n,a10000,i,j;cinn;for(i=0;iai;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj) swap(ai,aj);for(i=0;in;i+)coutai ;80.简单的排序#includeusing namespace std;int main()int a,b,c,d,e=1;cina;int na;for(c=0;cnc; cinb;for(c=0;cb)e=e+1; coute; return 0; 100.成绩排名#includeusing namespace std;int main() int a10000,n,i=0,j; cinn; while(n0) ai=n%2; i+; n=n/2; for(j=i-1;j=0;j-) coutaj;86.十进制数转换为二进制数二维数组的定义语法格式:类型类型 数组名数组名常量表达式常量表达式1常量表达式常量表达式2;如: int a23; 数组a各元素如下: a00 a01 a02 a10 a11 a12二维数组中每个元素都是用下列方式标识:数组名数组名行下标行下标列下标列下标对于二维数组,可以把它看成是由多个一维数组构成。如:int a23;就可以看成是由两个形如int a3;的一维数组构成的。 二维数组初始化(1)分别对各元素赋值,每一行的初始值用一对花括号括起来。例如:int a23=1,2,3,4,5,6;(2)将各初始值全部连续地写在一个花括号内,在程序编译时会按内存中排列的顺序将各初始值分别赋给数组元素。例如int a23=1,2,3,4,5,6;(3)只对数组的部分元素赋值。例如:int a23=1,2,3,4;(4)可以在分行赋初值时,只对该行中一部分元素赋初值,例如:static int a23=1,2,1;省略第一维的大小若在定义数组时给出了全部数组元素的初值,则数组的第一维下标可以省略,但第二维下标不能省略。下面两种定义方式等价:static int a23=1,2,3,4,5,6;static int a 3=1,2,3,4,5,6; static int a2 =1,2,3,4,5,6; /错误写法在分行定义时,也可以只对部分元素赋初值而省略第一维的下标。例如:int a 4=1,2,3,4,5; 等价于 int a34=1,2,0,0,0,0,0,0,3,4,5,0 ;二维数组例#include using namespace std; int main() float disks24; int row, col; disks00 = 2.39; / Row 1, column 1 disks01 = 2.75; / Row 1, column 2 disks02 = 3.29; / Row 1, column 3 disks03 = 3.59; / Row 1, column 4 disks10 = 1.75; / Row 2, column 1二维数组例 disks11 = 2.19; / Row 2, column 2 disks12 = 2.69; / Row 2, column 3 disks13 = 2.95; / Row 2, column 4 / Print for (row=0; row2; row+) for (col=0; col4; col+) cout “$” disksrowcol “n”; return 0;二维数组例#include / 二维矩阵的转置二维矩阵的转置using namespace std;int main( ) int a23=1,2,3,4,5,6; int b32,i,j; coutarray a:endl; for (i=0;i=1;i+) for (j=0;j=2;j+) bji=aij; coutarray b:endl; for (i=0;i=2;i+) for(j=0;j=1;j+) coutbij ; coutendl; return 0;二维数组例#include using namespace std;int main( ) int i,j,row=0,colum=0,max; int a34=5,12,23,56,19,28,37,46,-12,-34,6,8; max=a00; /使使max开始时取开始时取a00的值的值 for (i=0;i=2;i+) /从第从第0行行第第2行行 for (j=0;jmax) /如果某元素大于如果某元素大于max max=aij; /max将取该元素的值将取该元素的值 row=i; /记下该元素的行号记下该元素的行号i colum=j; /记下该元素的列号记下该元素的列号j coutmax=max,row=row,colum=columendl; return 0; 例例 :读入下表中值到数组,分别求各行、各列及表中所有数之和读入下表中值到数组,分别求各行、各列及表中所有数之和12 4 615 7 9 8 23 3 2 5 1712 4 6 2215 7 9 31 8 23 3 34 2 5 17 2437 39 35 111#include int main() int x54,i,j; for(i=0;i4;i+) for(j=0;jxij; for(i=0;i3;i+) x4i=0; for(j=0;j5;j+) xj3=0; for(i=0;i4;i+) for(j=0;j3;j+) xi3+=xij; x4j+=xij; x43+=xij; for(i=0;i5;i+) for(j=0;j4;j+) cout“ ”xij; coutendl; return 0;多维数组类型类型 数组名数组名常量表达式常量表达式1常量表达式常量表达式2常量表达式常量表达式n;例如:定义一个整型三维数组:int a234;int a234=1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15,16,17,18,19,20,21,22,23,24;或:int a234=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21,22,23,24;或int a 34=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24;int b 32=1,2,3,5,0,7,8,10;int b232=1,2,3,0,5,0,0,7,8,0,10,0;等价数组和函数1. 数组元素作为函数的参数数组元素作为函数的参数用法与普通变量作参数相同。将数组元素的值传送给形参进行函数体调用,函数调用完返回后,数组元素的值不变。这种传送方式是“值传送”方式。例#include using namespace std;int main( ) int max_value(int x,int max); /函数声明函数声明 int i,j,row=0,colum=0,max; int a34=5,12,23,56,19,28,37,46,-12,-34,6,8; /数组初始化数组初始化 max=a00; for (i=0;i=2;i+) for (j=0;j=3;j+) max=max_value(aij,max); /调用调用max_value函数函数 if(max=aij) /如果函数返回的是如果函数返回的是aij的值的值 row=i; /记下该元素行号记下该元素行号i colum=j; /记下该元素列号记下该元素列号j coutmax=max,row=row,colum=colummax) return x; /如果如果xmax,函数返回值为,函数返回值为x else return max; /如果如果xmax,函数返回值为,函数返回值为max数组名作为函数的参数数组名作为函数的参数 当用数组名作为函数的实参和形参时,传递的是数组的地址。这时实参数组和形参数组应该分别在它们所在的函数中定义。把实参数组的起始地址传送给形参数组,这样形参数组就和实参数组共占同一段内存单元,当形参值发生变化时,实参值也发生变化。数组和函数例#include using namespace std;int main( ) void select_sort(int array,int n); /函数声明函数声明 int a10,i; coutenter the originl array:endl; for(i=0;iai; coutendl; select_sort(a,10); /函数调用,数组名作实参函数调用,数组名作实参 coutthe sorted array:endl; for(i=0;i10;i+) /输出输出10个已排好序的数个已排好序的数 coutai ; coutendl; return 0;例void select_sort(int array,int n) /形参形参array是数组名是数组名 int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(arrayjarrayk) k=j; t=arrayk; arrayk=arrayi; arrayi=t; void select_sort(int array10,int n)void select_sort(int array,int n)void select_sort(int array5,int n)均合法.2109a562312.88array例输入10个学生的成绩,求平均成绩,并将低于平均成绩的分数打印出来。#include using namespace std;void readdata(float score10) coutPlease input 10 students score:endl; for(int i=0;iscorei;例float aver(float score10) float sum=0; int i; for(i=0;i10;i+) sum+=scorei; return(sum/10); void print(float score10,float ave) int i; coutthe scores which are below the average:; for(i=0;i10;i+) if(scoreiave) coutscorei ; coutendl; 例int main() float ave,score10; readdata(score); ave=aver(score); coutaverage=aveendl; print(score,ave); return 0; 运行结果:Please input 10 students score:10 20 30 40 50 60 70 80 90 100average=55the scores which are below the average:10 20 30 40 50 数组元素与 数组名 作函数参数比较12a调用前a0a112a调用a0a112xy21xy交换12a返回#include void swap2(int x,int y) int z; z=x; x=y; y=z;int main() int a2=1,2; swap2(a0,a1); cout“a0=“a0“,a1=“a1; return 0;值传递12a调用前12ax调用21ax交换21a返回#include void swap2(int x) int z; z=x0; x0=x1; x1=z;int main() int a2=1,2; swap2(a); couta0=“a0“,a1=“a1; return 0;地址传递例例: 求二维数组中最大元素值求二维数组中最大元素值1 3 5 72 4 6 815 17 34 12ijmax=11 3 5 72 4 6 815 17 34 12ijmax=31 3 5 72 4 6 815 17 34 12ijmax=5j1 3 5 72 4 6 815 17 34 12imax=7j1 3 5 72 4 6 815 17 34 12imax=7j1 3 5 72 4 6 815 17 34 12imax=34#includeint max_value(int array34) int i,j,k,max; max=array00; for(i=0;i3;i+) for(j=0;jmax) max=arrayij; return (max);int main() int a34=1,3,5,7, 2,4,6,8,15,17,34,12; cout“max value is “max_value(a)endl; return 0;多维形参数组第一维维数多维形参数组第一维维数可省略可省略,第二维必须相同第二维必须相同 int array4例: 求二维数组中各行元素之和#includevoid get_sum_row(int x3, int result ,int row, int col) int i,j; for(i=0;irow;i+) resulti=0;for(j=0;jcol;j+) resulti+=xij; int main() int a23=3,6,9,1,4,7; int sum_row2,row=2,col=3,i; get_sum_row(a,sum_row,row,col); for(i=0;irow;i+) coutThe sum of row“i+1“=“sum_rowiendl; return 0;314679asum_rowxresult1812字符数组char c10;c0=I; c1= ; c2=a; c3=m; c4= ;c5=h; c6=a; c7=p; c8=p; c9=y;char c10=I, ,a,m, ,h,a,p,p,y;char c=I, ,a,m, ,h,a,p,p,y;字符数组赋值和引用char c5;c=C,h,i,n,a; /错误,不能对整个数组一次赋值错误,不能对整个数组一次赋值c0=C; c1=h;c2=i;c3=n;c4=a; /对数组元素赋值,正确对数组元素赋值,正确若已定义了若已定义了a和和b是具有相同类型和长度的数组,且是具有相同类型和长度的数组,且b数组数组已被初始化,则:已被初始化,则: a=b; /错误,不能对整个数组整体赋值错误,不能对整个数组整体赋值 a0=b0; /正确,引用数组元素正确,引用数组元素 字符串char str=I am happy;char str=I am happy;char str=I, ,a,m, ,h,a,p,p,y,0;等价char str10=China;字符数组的输入和输出(1) 逐个字符输入输出。逐个字符输入输出。 如:如: char c5; for(int i=0;ici;(2) 将整个字符串一次输入或输出。将整个字符串一次输入或输出。 如:如: char str20; cinstr; /用字符数组名输入字符串用字符数组名输入字符串 coutstr; /用字符数组名输出字符串用字符数组名输出字符串字符串处理函数1、#include 或 #include2、字符串连接函数字符串连接函数 strcat(char,const char); char str130=Peoples Republic of ; char str2=China; strcat(str1,str2); /将将str2连接到连接到str1后面后面3、字符串复制函数字符串复制函数strcpy(char,const char); char str110,str2=China; strcpy(str1,str2); /将将str2复制到复制到str14、字符串比较函数字符串比较函数strcmp(const char,const char); strcmp(str1,str2); strcmp(China,Korea); strcmp(str1,Beijing); (1) 如果字符串如果字符串1=字符串字符串2,函数值为,函数值为0。 (2) 如果字符串如果字符串1字符串字符串2,函数值为一正整数。,函数值为一正整数。 (3) 如果字符串如果字符串1字符串字符串2,函数值为一负整数。,函数值为一负整数。5、字符串长度函数字符串长度函数strlen(const char); char str10=China; coutstrlen(str); /不包括不包括0字符串处理函数例#include #include using namespace std;int main( ) void max_string(char str30,int i); /函数声明函数声明 int i; char country_name330; for(i=0;icountry_namei; /输入输入3个国家名个国家名 max_string(country_name,3); return 0;例void max_string(char str30,int n) int i; char string30; strcpy(string,str0); /使使string的值为的值为str0的值的值 for(i=0;i0) strcpy(string,stri); /将将stri中的字符串复制到中的字符串复制到string coutendlthe largest string is: stringendl;#include#includeusing namespace std;int main() char str1 = Hello!, str2 = How are you?,str20; int len1,len2,len3; len1=strlen(str1); len2=strlen(str2); if(strcmp(str1, str2)0) strcpy(str,str1); strcat(str,str2); else if (strcmp(str1, str2)0) strcpy(str,str2); strcat(str,str1); else strcpy(str,str1); len3=strlen(str); puts(str); coutLen1=len1,Len2=len2,Len3=len3endl; return 0;How are you?Hello!Len1=6,Len2=12,Len3=18字符串类1. 定义字符串变量定义字符串变量#include /注意头文件名不是注意头文件名不是string.hstring string1; /定义定义string1为字符串变量为字符串变量string string2=“China”; /定义定义string2同时对其初始化同时对其初始化2. 对字符串变量的赋值对字符串变量的赋值string1=Canada;string2=string1;字符串类3. 字符串变量的输入输出字符串变量的输入输出cin string1; /从键盘输入字符串给字符串变量从键盘输入字符串给字符串变量string1cout、=、=等关系等关系运算符来进行字符串的比较。运算符来进行字符串的比较。字符串类5、字符串数组字符串数组string name5; /定义一个字符串数组,它包含定义一个字符串数组,它包含5个字符串元素个字符串元素string name5=Zhang,Li,Fun,Wang,Tan; 字符串类#include #include using namespace std;int main( ) string string1,string2,string3,temp; coutstring1string2string3; if(string2string3) temp=string2; string2=string3; string3=temp; if(string1=string2) coutstring1“ ”string2“ ”string3endl; else if(string1=string3) coutstring2“ ”string1“ ”string3endl; else coutstring2“ ”string3“ ”string1endl;本章总结1、数组的定义格式2、数组元素的格式3、数组的赋值与初始化4、数组与函数5、字符数组6、字符串结束结束

    注意事项

    本文(C++数组课件.ppt)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开