c++课件第五章数组_第1页
c++课件第五章数组_第2页
c++课件第五章数组_第3页
c++课件第五章数组_第4页
c++课件第五章数组_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. 第五章 数 组5.1 数组的概念5.2 一维数组的定义和引用5.2.1 定义一维数组类型标识符 数组名常量表达式int a10;数组从零开场;常量表达式中不能有变量,即C+不允许对数组的大小作动态定义。数组变量占用内存的大小可用数组的大小乘上其元素的大小计算。5.2.2 引用一维数组的元素数组名下标a0=a5+a7-a2*3;例5.1 数组元素的引用#include <iostream>using namespace std;void mainint i,a10;fori=0;i<=9;i+ai=i;fori=9;i>=0;i-cout<<ai<&

2、lt;" "cout<<endl;9 8 7 6 5 4 3 2 1 05.2.3 一维数组的初始化(1) int a10=0,1,2,3,4,5,6,7,8,9;(2) int a10=0,1,2,3,4;那么后5个默认为0(3) int a=0,1,2,3,4;那么a是有五个元素的数组5.2.4 一维数组程序举例例5.2 用数组来处理求Fibonacci数列问题.#include <iostream>#include <iomanip>using namespace std;void mainint i,f20=1,1;fori=2;

3、i<20;i+fi=fi-2+fi-1;fori=0;i<20;i+ifi%5=0 cout<<endl; cout<<setw8<<fi;cout<<endl; 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 67655.3 二维数组的定义和使用5.3.1 定义二维数组类型标识符 数组名常量表达式 常量表达式int a34;数组元素是按行存放的。5.3.2 二维数组的引用a12=6;5.3.3 二维数组的初始化(1) int a34=1,2,3,4,5,6,

4、7,8,9,10,11,12;(2) int a34=1,2,3,4,5,6,7,8,9,10,11,12;(3) int a34=1,5,9;(4) int a4=2,3,4,0,10;那么数组共有三行。 5.3.4 二维数组程序举例例5.4 将一个二维数组行和列元素互换,存到另一个二维数组中。#include <iostream>using namespace std;void mainint a23=1,2,3,4,5,6;int b32,i,j;cout<<"array a:"<<endl;fori=0;i<2;i+forj

5、=0;j<3;j+cout<<aij<<" "cout<<endl;cout<<"array b:"<<endl;fori=0;i<3;i+forj=0;j<2;j+cout<<bij=aji<<" "cout<<endl;array a:1 2 34 5 6array b:1 42 53 6例5.5 有一个3X4的矩阵,要求编程序求出最大值,以及其所在的行号和列号。#include <iostream>usi

6、ng namespace std;void mainint i,j,row=0,colum=0,max;int a34=5,12,23,56,19,28,37,46,-12,-34,6,8;max=a00;fori=0;i<3;i+forj=0;j<4;j+ifaij>maxmax=aij;row=i;colum=j;cout<<"max="<<max<<",row="<<row<<",colum="<<colum<<endl;max

7、=56,row=0,colum=35.4 用数组名作函数参数1. 用数组元素作函数实参例5.6 用函数处理例5.5#include <iostream>using namespace std;void mainbool if_maxint 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;fori=0;i<3;i+forj=0;j<4;j+ifif_maxaij,maxmax=aij;row=i;colum=j;cout<<"

8、max="<<max<<",row="<<row<<",colum="<<colum<<endl;bool if_maxint x,int maxifx>max return true;else return false;数组元素可以用在该类型变量可用的任何地方。2. 用数组名作函数参数例5.7 用选择法对数组中10个整数按由小到大排序。3,6,1,9,4#include <iostream>using namespace std;void mainvoi

9、d select_sortint array,int n;int a10,i;cout<<"enter the original array:"<<endl;fori=0;i<10;i+ cin>>ai;select_sorta,10;cout<<"the sorted array:"<<endl;fori=0;i<10;i+ cout<<ai<<" "cout<<endl;void select_sortint array,i

10、nt nint i,j,k,t;fori=0;i<n-1;i+k=i;forj=i+1;j<n;j+ifarrayj<arraykk=j;t=arrayk;arrayk=arrayi;arrayi=t;enter the original array:6 9 -2 56 87 11 -54 3 0 77the sorted array:-54 -2 0 3 6 9 11 56 77 87关于数组名作函数参数有两点要说明:(1) 函数形参是数组名,实参也是数组名。(2) 数组名代表数组首元素的地址,并不代表数组中的全部元素。3. 用多维数组名作函数参数例5.8 有一个3X4的矩

11、阵,求矩阵中所有元素中的最大值。要求用函数处理。#include <iostream>using namespace std;void mainint max_valueint array4;int a34=11,32,45,67,22,44,66,88,15,72,43,37;cout<<"max value is "<<max_valuea,3<<endl;int max_valueint array4,int nint i,j,max;max=array00;fori=0;i<n;i+forj=0;j<4;j

12、+ifarrayij>max max=arrayij;return max;max value is 885.5 字符数组5.5.1 字符数组的定义和初始化char c10;c0='I'c1=' 'char c10='I',' ','a','m',' ','h','a','p','p','y'5.5.2 字符数组的赋值和引用例5.9 设计和输出一个钻石图形。#include <iostream

13、>using namespace std;void mainchar diamond5=' ',' ','*',' ','*',' ','*','*',' ',' ',' ','*',' ','*',' ','*',' ',' ','*'int i,j;fori=0;i<5;i+fo

14、rj=0;j<5;j+cout<<diamondij;cout<<endl; * * * * * * *5.5.3 字符串和字符串完毕标志 '0'char str="I am happy"与char str11='I',' ','a','m',' ','h','a','p','p','y'一样char str11='I',' ','

15、a','m',' ','h','a','p','p','y',0;5.5.4 字符数组的输入与输出(1) 逐个字符输入输出(2) 将整个字符串一次输入或输出#include <iostream>using namespace std;void mainchar str="I am happy"char str111='I',' ','a','m',' ','

16、h','a','p','p','y'char str211='I',' ','a','m',' ','h','a', 'p','p','y','0'char str310='I',' ','a','m',' ','h','a','p

17、','p','y'cin>>str;cout<<str1<<endl;cout<<str2<<endl;cout<<str3<<endl;I am happyI am happyI am happyI am happy5.5.5 字符串处理函数1. 字符串连接函数strcatstrcatchar,const char;例#include <iostream>using namespace std;void mainchar str130="Peopl

18、e's Republic of "char str2="china"strcatstr1,str2;cout<<str1<<endl;People's Republic of china2. 字符串复制函数strcpystrcpychar,const char; 例#include <iostream>using namespace std;void mainchar str130="People's Republic of"char str2="china"str

19、cpystr1,str2;cout<<str1<<endl;china不合法的两种写法:str1="china"str1=str2;3. 字符串比较函数strcmpstrcmpchar,const char;比较的结果由函数值带回(1) 相等,函数值为0(2) 大于,函数值为一正整数(3) 小于,函数值为一负整数ifstrcmpstr1,str2>0 cout<<"yes"4. 字符串的长度strlenconst char;#include <iostream>using namespace std;

20、void mainchar str10="china"cout<<strlenstr<<endl;55.5.6 字符串应用举例例5.10 有3个字符串,要求找出其中最大者,要求用函数调用。#include <iostream>using namespace std;void mainvoid max_stringchar str30,int i;int i;char country_name330;fori=0;i<3;i+cin>>country_namei;max_stringcountry_name,3;void

21、max_stringchar str30,int nchar string30;strcpystring,str0;ifstrcmpstr1,string>0 strcpystring,str1;ifstrcmpstr2,string>0 strcpystring,str2;cout<<"the largest string is:"<<string<<endl;CHINAGERMANYFRANCHthe largest string is:GERMANY5.6 C+处理字符串的方法-字符串类与字符串变量string不是C+语

22、言的根本数据类型,它是C+标准库中声明的一个字符串类。使用时应加 #include <string>5.6.1 字符串变量的定义和引用1 定义字符串变量string string1;string string2="China"2. 对字符串变量的赋值string1="Canada"char str10;str="Hello!" /错误string1=string2;string word= "Then"word2=a;3. 字符串变量的输入和输出cin>>string1;cout<&l

23、t;string2;例#include <iostream>#include <string>using namespace std;void mainstring string1;string string2="China"string1="Canada"char str10;/str="Hello!" /错误string1=string2;string word= "Then"word2='a'cin>>string1;cout<<string2&

24、lt;<endl;cout<<word<<endl;qweChinaThan5.6.2 字符串变量的运算(1) 字符串复制用赋值号 string1=string2;(2) 字符串连接用加号 (3) 字符串比较直接用关系运算符 = > < != >= <=#include <iostream>#include <string>using namespace std;void mainstring string1="C+ "string string2="Language"string1+=string2;cout<<string1<<endl;5.6.3 字符串数组#include <iostream>#include <string>using namespace std;void mainstring name5="Zhang","Wang","Li","Zhao","Tan"cout<<name1.length<<endl;45.6.4 字符串运算举例例5.11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论