C++实验四复杂数据类型.pdf

C++实验四复杂数据类型.pdf

ID:55786089

大小:73.80 KB

页数:5页

时间:2020-06-02

C++实验四复杂数据类型.pdf_第1页
C++实验四复杂数据类型.pdf_第2页
C++实验四复杂数据类型.pdf_第3页
C++实验四复杂数据类型.pdf_第4页
C++实验四复杂数据类型.pdf_第5页
资源描述:

《C++实验四复杂数据类型.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四复杂数据类型实验目的学习数组的定义、初始化、赋值和使用的方法学习给函数传递数组的方法学习指针和引用的定义和使用方法学习字符串的使用方法学习用指针和引用给函数传递参数实验内容1.数组排序从键盘读入若干整数,将它们按由低到高排序输出。[测试数据]:程序先输出:Pleaseinputarraynumber:用户输入:5程序再输出:Pleaseinputalltheinteger:用户输入:300700600450500程序输出:300450500600700[实现要求]:1.用一个数组存放各个整数;2.在主函数main()中实现数据的输入和输出操作,并用一个函数实现对数组

2、元素的排序操作。3.排序函数调用另一个函数swap()实现两个数组元素的交换。可以使用指针、引用两种方式实现函数参数的传递:swap(int*pa,int*pb);swap(int*a;int&b);[实现提示]:排序可以用最简单的选择排序法:选择排序法:1.从n个数中选择最小的一个,把它和第一个数组元素交换;2.从剩下的n-1个数中选择最小的一个,把它和第二个数组元素交换;3.依此类推,直到从最后两个元素中选出倒数第二小的元素并把它和倒数第二个元素交换为止。如要按选择排序法对数组3050213920排序,则各趟排序后的结果如下所示(带下划线的数表示参加交换的数):开始:30502

3、13920第一趟排序:2050213930第二趟排序:2021503930第三趟排序:2021303950第四趟排序:2021303950[实验步骤]1.用数组实现程序要求说明:用一个长度为10的数组存放待排序的数据,数组的定义为intiArray[10];数组排序函数的原型为:voidsort(intnum,intiArray[]);其中num表示数组元素的个数,iArray是数组。2.用动态申请空间的方式实现程序要求。说明:使用指针来实现前面数组的功能int*piArray;piArray=newint(num);其中数组的大小num需要由用户预先输入。[思考问题]1.上面两种

4、实现方式对程序的改动大吗?2.尝试用不同的方式访问数组中的元素iArray[i],*(iArray+i),piArray[i],*(piArray+i),3.iArray和piArray有何共同点?2.字符排序修改上面的程序,将数组的操作改为对字符串操作,即从键盘输入一串字符,将它们存放在字符数组中(形成一个字符串),然后对字符数组中的各个字符排序。[测试数据]:输入内容:kapdobc输出内容:abcdkop[实现要求]:1.用字符数组代替上一个实验的整数数组;2.不要先输入字符串的长度,在程序中自动计算出字符串的长度。[实现提示]:1.字符串的输入输出操作可以简化,不用一个字符

5、一个字符的输入输出2.字符的长度可以借助于预定义的函数strlen()求出,该函数所在的库函数名为string.h[思考问题]对字符的比较遵循什么样的约定(为什么字符a比字符b小)?3.字符串操作要求和上面类似,但数组中的元素变为字符串。程序对已有的字符串进行排序,并输出排序后的结果。字符串数组中的元素为:January,February,March,April,May,June,July,September[测试数据]:程序直接输出排序后的结果:MayJulyJuneAprilMarchJanuaryFebrurarySeptember[实现要求]:1.排序的规则为:先比较两个字

6、符串的长度,长度短的字符串排在前面,如果长度相等,则比较字符串的值,按从小到大排序输出。2.用字符串数组存放各字符串,并在定义数组时对其进行初始化3.利用库函数qsort实现排序操作[实现提示]:1.使用库函数qsort必须包含头文件;2.qsort的函数原型为:voidqsort(void*base,//所要排序的数组第一个元素的地址size_tnelem,//要排序的元素的个数size_twidth,//要排序的元素的宽度int(*fcmp)(constvoid*,constvoid*));//用于比较元素大小的函数名字其中,比较数组元素大小的函数原型为:i

7、nt(*fcmp)(constvoid*,constvoid*);其两个参数分别指向两个要比较的数,结果用小于零、等于零和大于零分别表示第一个数小于、等于和大于第二个数。你需要定义自己的字符串比较函数,其原型和上面的一样。函数的定义如下:intsort_function(constvoid*a,constvoid*b){if(strlen((char*)a)!=strlen((char*)b))returnstrlen((char*)a)-strlen((char*)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。