| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 383 人关注过本帖
标题:[求助] 请帮忙编一下这个程序~!谢谢!
只看楼主 加入收藏
adushimmdezh
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-6-26
收藏
 问题点数:0 回复次数:2 
[求助] 请帮忙编一下这个程序~!谢谢!
将两个按从小到大排列的有序数组a和b复制合并到第3个有序数组c中。m和n分别是数组a和b的元素个数,结果c的元素个数为k。例如,a和b数组分别为{1, 2, 2, 3, 8}和{3, 4, 7, 8},则结果数组c的值是{1, 2, 2, 3, 3, 4, 7, 8, 8}。算法是:将a、b两个数组看成两个队列,比较队首的两个元素,将较小者放入c队列尾部,如果队首的两个元素相等,则先选择a队列首部元素加入c队列尾部。循环执行以上过程,直到a或b队列之一为空,然后将另一个非空队列拷贝到c队列尾部。注意:不允许使用其他算法(如排序算法)。试建立一个类Com,完成合成工作。
具体要求如下:
(1)私有数据成员。
●int m, n, k:分别是a, b, c三个数组的元素个数。
●int *a, *b, *c:分别指向动态申请的3组存储数据空间,其空间大小分别依据m、n和k的值而定。
(2)公有成员函数。
●Com(int aa[ ], int m1, int bb[ ], int n1 ):构造函数,用参数初始化a、b数组及其元素个数。将k初始化为0。
●void combine( ):完成合并工作。
●void show(fstream &):将a、b、c三个数组输出,每行输出一个数组。
●~Com():析构函数,释放动态申请的存储空间。
(3)在主程序中完成对该类进行测试。定义两个数组int x[100], y[100],其输入的初始值如上。定义一个Com类的对象c,用x、y数组及其元素的个数初始化该对象,然后调用成员函数进行合并及输出工作。程序正确的运行结果如下:
a:1, 2, 2, 3, 8
b:3, 4, 7, 8
c:1, 2, 2, 3, 3, 4, 7, 8, 8
还可以自行选择输入文件数据,完成测试工作。
[要求]
将源程序取名为cd11.cpp,程序中使用的数据皆放在文件名为data.txt中,并使用C++读取文件的方式输入程序中需要的数据,最后程序运行的结果同时以2种方式输出:①屏幕显示方式和②文件的形式存放在文件名为result.txt中,以上3个文件皆放在学号姓名文件夹下,供阅读、运行使用。


我怎么都编不出来 请高手们帮帮忙
搜索更多相关主题的帖子: 元素 
2009-06-26 11:19
快速回复:[求助] 请帮忙编一下这个程序~!谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033063 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved