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

下载本文档

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

文档简介

1、5/9/2022整理课件1第第6章章 数组数组Visual C+程序设计基础程序设计基础5/9/2022整理课件2数 组Visual C+程序设计基础程序设计基础5/9/2022整理课件3一维数组的定义Visual C+程序设计基础程序设计基础5/9/2022整理课件4一维数组的定义Visual C+程序设计基础程序设计基础5/9/2022整理课件5一维数组的初始化Visual C+程序设计基础程序设计基础5/9/2022整理课件6一维数组的使用Visual C+程序设计基础程序设计基础5/9/2022整理课件7一维数组应用实例(选择法排序)Visual C+程序设计基础程序设计基础例:把一组

2、无序的数据例:把一组无序的数据(如如15, 8, 4, 13, 6, 1)放在数组放在数组a0 a5中,要求将其按升序排序中,要求将其按升序排序(结果应为结果应为1, 4, 6, 8, 13, 15)a0 a1 a2 a3 a4 a5初始状态第1次第2次a0a1, 交换a0a2, 交换第3次a0a3, 不交换第4次a0a5, 交换5/9/2022整理课件8一维数组应用实例(选择法排序)Visual C+程序设计基础程序设计基础经过第1轮循环后,找到了最小的数1,并将其放到了a0中,下面将找次小的数,并将其放到a1中。a0 a1 a2 a3 a4 a5第1轮后第1次第2次a1a2, 交换a1a4

3、, 交换第4次a1a5, 交换第1轮比较结束后的状态:第2轮开始:5/9/2022整理课件9一维数组应用实例(选择法排序)Visual C+程序设计基础程序设计基础经过第经过第2轮循环后,找到了次小的数轮循环后,找到了次小的数4,并将其放到了,并将其放到了a1中,依此类推,经过中,依此类推,经过5轮后即可完成排序工作。轮后即可完成排序工作。a0 a1 a2 a3 a4 a5第5轮后最终结果为:for(i=0;i5;i+) for(j=i+1;jaj) temp=ai; ai=aj; aj=temp; 完成该选择法排序的程序段为:5/9/2022整理课件10一维数组应用实例(选择法排序)Visu

4、al C+程序设计基础程序设计基础另一种快速的选择法排序算法为:另一种快速的选择法排序算法为:a0 a1 a2 a3 a4 a5初始状态第1轮循环第2轮循环第3轮循环第4轮循环第5轮循环将a0和最小的数a5交换将a1和次小的数a2交换下一步a2和a4交换下一步a3和a4交换5/9/2022整理课件11一维数组应用实例(选择法排序)Visual C+程序设计基础程序设计基础一般情况下,对于一般情况下,对于N个数据的排序问题,该算法可描述为:个数据的排序问题,该算法可描述为:for(i=0;iN-1;i+) t=i; for(j=i+1;jaj) t=j; if(t!=i) temp=ai;ai=

5、at;at=temp; 5/9/2022整理课件12例:把一列无序数据例:把一列无序数据(如如15 8 4 13 6 1)放在数组放在数组a0a5中,要求按升序排列。中,要求按升序排列。一维数组应用实例(冒泡法排序)Visual C+程序设计基础程序设计基础初始状态第第1次:次:a0a1,交换,交换a0和和a1第第2次:次:a1a2,交换,交换a1和和a2第第3次:次:a2a3,交换,交换a2和和a3第第4次:次:a3a4,交换,交换a3和和a4第第5次:次:a4a5,交换,交换a4和和a5这是第1轮排序后的结果,最大的数沉到了最下面,小数则向上移动5/9/2022整理课件13 经过第经过第1

6、轮轮5次次比较,找出了最大的数比较,找出了最大的数15并将其保存到并将其保存到a5中,其它数上浮。在第中,其它数上浮。在第2轮比较中,将轮比较中,将a0a4按前述按前述方法进行方法进行4次次交换后,可得到第交换后,可得到第2个比较大的数个比较大的数13,存放于,存放于a4中。依此类推,可得到排序结果。中。依此类推,可得到排序结果。一维数组应用实例(冒泡法排序)Visual C+程序设计基础程序设计基础第1轮第2轮第3轮第4轮第5轮5/9/2022整理课件14一般的,对于一般的,对于N个数据的冒泡法排序,该算法可描述为:个数据的冒泡法排序,该算法可描述为:一维数组应用实例(冒泡法排序)Visua

7、l C+程序设计基础程序设计基础q a0与与a1比较比较,若若a0a1,两数交换;然后两数交换;然后 a1与与 a2比较,重复上述步骤。结果比较,重复上述步骤。结果大数沉底,小数上升,大数沉底,小数上升,an-1中为最大的数。中为最大的数。q a0到到 an-2,两两比较。,两两比较。q 依次类推,直到从依次类推,直到从 a0和和 a1中找出最大值沉底。中找出最大值沉底。for(i=0;iN-1;i+) for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;5/9/2022整理课件15二维数组的定义Visual C+程序设计基础程序设计基础5/9/2022整理课件16二维数组的定

8、义Visual C+程序设计基础程序设计基础5/9/2022整理课件17多维数组的定义Visual C+程序设计基础程序设计基础5/9/2022整理课件18二维(多维)数组的引用Visual C+程序设计基础程序设计基础5/9/2022整理课件19二维(多维)数组的初始化Visual C+程序设计基础程序设计基础5/9/2022整理课件20二维(多维)数组实例Visual C+程序设计基础程序设计基础5/9/2022整理课件21数组和函数Visual C+程序设计基础程序设计基础5/9/2022整理课件22数组和函数Visual C+程序设计基础程序设计基础5/9/2022整理课件23Visu

9、al C+程序设计基础程序设计基础程序中的函数程序中的函数p( )用于计算:用于计算:10niiibyaxp主函数利用函数完成计算主函数利用函数完成计算:7021iiivds90432iiiwvsint p(int a, int x, int b, int y, int n) int i, s; for(_; in; i+) s+=_; return s;int d=2,3,5,4,9,10,8;int v=7,6,3,2,5,1,8,9,3,4;int w=1,2,3,4,5,6,7,8,9,10;void main(void) cout“ns1=“_; cout“ns2=“_;a*xi+b

10、*yii=0,s=0p(1,d,2,v,8)p(3,v,4,w,10)5/9/2022整理课件24字 符 数 组Visual C+程序设计基础程序设计基础5/9/2022整理课件25字 符 数 组Visual C+程序设计基础程序设计基础5/9/2022整理课件26字符数组的输入输出Visual C+程序设计基础程序设计基础逐个字符的输入输出。逐个字符的输入输出。这种输入输出的方法,通常是使用这种输入输出的方法,通常是使用循环语句来实现的。如:循环语句来实现的。如:char str10;cout“输入十个字符:输入十个字符:”;for(int i=0;istri;/A .A行将输入的十个字符依

11、次送给数组行将输入的十个字符依次送给数组str中的各个元素。中的各个元素。定义定义赋值赋值5/9/2022整理课件27字符数组的输入输出Visual C+程序设计基础程序设计基础把字符数组作为字符串输入输出。把字符数组作为字符串输入输出。对于一维字符数组的输对于一维字符数组的输入,在入,在cin中仅给出数组名;输出时,在中仅给出数组名;输出时,在cout中也只给出数中也只给出数组名。组名。void main (void )char s150, s260;cout s1;cin s2;cout “n s1 = “ s1;cout “n s2 = “ s2 “n”; 输入:输入:abcdstrin

12、gcin只能输入一个单词,只能输入一个单词,不能输入一行单词。不能输入一行单词。数组名数组名数组名数组名输出到输出到0为止为止5/9/2022整理课件28字符数组的输入输出Visual C+程序设计基础程序设计基础当要把输入的一行作为一个字符串送到字符数组中时,则当要把输入的一行作为一个字符串送到字符数组中时,则要使用函数要使用函数cin.getline( )。这个函数的第一个参数为字符。这个函数的第一个参数为字符数组名,第二个参数为允许输入的最大字符个数。数组名,第二个参数为允许输入的最大字符个数。 cin.getline(数组名数组名, 数组空间数数组空间数);char s180;.cin

13、.getline(s1, 80);首先开辟空间首先开辟空间5/9/2022整理课件29字符数组的输入输出Visual C+程序设计基础程序设计基础void main (void ) char s381; cout”输入一行字符串输入一行字符串:”; cin.getline(s3,80); cout”s3=”s3n;当输入行中的字符个数小于当输入行中的字符个数小于80时,将实际输入的字符串时,将实际输入的字符串(不包括换行符)全部送给(不包括换行符)全部送给s3;当输入行中的字符个数大;当输入行中的字符个数大于于80时,只取前面的时,只取前面的80个字符送给字符串。个字符送给字符串。 定义定义从

14、键盘接收一行字符从键盘接收一行字符输出到输出到0为止为止5/9/2022整理课件30字符串处理函数Visual C+程序设计基础程序设计基础5/9/2022整理课件31字符串处理函数Visual C+程序设计基础程序设计基础5/9/2022整理课件32程序中对两个字符串相等的判断不能使用下列语句:程序中对两个字符串相等的判断不能使用下列语句:if (str1= =str2) 字符串处理函数Visual C+程序设计基础程序设计基础而应为:而应为:if (strcmp(str1, str2)= =0) 如果如果str1、str2是两个字符数组名,而且都赋了值,是两个字符数组名,而且都赋了值,则下面的语则下面的语句都是合法的:句都是合法的:strcmp(str1,str2); strcmp(“Japan”,”China

温馨提示

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

最新文档

评论

0/150

提交评论