现在有两个c语言合并字符串程序,要合并在一起用怎么实现

只需一步,快速开始
后使用快捷导航没有帐号?
查看: 699|回复: 5
如何用C语言实现批量文件合并后,另存为某个特定类型的文件?
累计签到:44 天连续签到:1 天&
如何用C语言实现两个功能:1、把某个文件与另一批文件依次合并
2、合并后依次另存为某个特定类型的文件?
3、希望大家帮忙写个执行程序,谢谢!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
累计签到:112 天连续签到:1 天&
貌似我不会啊
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
累计签到:64 天连续签到:1 天&
你的意思是处理两个文件合并为一个文件,并且保存的时候用的是其中一个文件的格式或者其它格式。使文件都保存到一个文件中,但是合并后的文件只能实现一个文件的功能或者内容,对吧?其实这样很简单的,你用C的文件处理调用函数就可以自己编一个。如果不懂得话,百度一下,基本都能搜到,那个源程序很短的,不长。其实你也可以用DOS命令来完成这个操作。我就不在着码源了!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
累计签到:88 天连续签到:1 天&
千万不要忘记结帖啊~~~
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
累计签到:11 天连续签到:1 天&
把n个文件依次读取出来,放在内存中,然后依次fwrite到文件里就实现合并了啊
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
累计签到:44 天连续签到:1 天&
感谢大家的回复,已经解决,谢谢!
1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的
按钮,否则您的代码可能会被“吃掉”!
小甲鱼强烈推荐 /1
本季挑战赛依旧会有精彩的题目供大家挑战,大量鱼币奖励等你赢取!
本期题目:文献检索之关键词检索
•••(
Powered by递归算法是把一个问题分解成和自身相似的子问题,然后再调用自身把相应的子问题解决掉。这些算法用到了分治思想。其基本模式如下:
分解:把一个问题分解成与原问题相似的子问题
解决:递归的解各个子问题
合并:合并子问题的结果得到了原问题的解。
现在就用递归算法,采用上面的分治思想来解合并排序。
&&&&&&&&&&&&&&&&&&&&& 合并排序(非降序)
分解:把合并排序分解成与两个子问题
MERGE_SORT(A, begin, end)
if begin & end
then mid&- int((begin + end)/2)
MERGE_SORT(A, begin, mid)
MERGE_SORT(A, mid+1, end)
MERGE(A, begin, mid, end)
解决:递归的解各个子问题每个子问题又继续递归调用自己,直到这一条件不满足时,即时,此时只有一个元素,显然是有序的,这样再进行下一步合并。
合并:合并的子问题的结果有个隐含问题,即各个子问题已经是排好序的了(从两个氮元素序列开始合并)。做法是比较两个子序列的第一个元素小的写入最终结果,再往下比较,如下图所示:
&&&&&&&&图中:待排序数组为
&&&&&&&&把和&分别存到一个数组中,比较两个数组的第一个元素大小小者存于大数组中,直到两小数组中元素都为
&&&&&&&&这里味无穷大,因为&语言中&&类型是位,表示范围是。用无穷大作为靶子可以减少对两个小数组是否为空的判断,有了靶子,直接判断大数组元素个数次就排完了。&
&&&& 在整个过程中执行过程示如下图:
&&&&& 分解+执行时自上向下,合并时自下向上。
&代码奉上:
#include &stdio.h&
void MERGE(int *A, int b, int m, int e)
int l = m-b+1, r = e-m,
int L[l+1], R[r+1];
for(i=0; i& i++)
L[i] = A[b+i];
for (i=0; i& i++)
R[i] = A[m+i+1];
L[l] = 32767;
R[r] = 32767;
for(i=0; i& e-b+1; i++)
if(L[l] & R[r])
A[b+i] = L[l];
A[b+i] = R[r];
void MERGE_SORT(int *A, int b, int e)
int m = (b + e) / 2;
MERGE_SORT(A, b, m);
MERGE_SORT(A, m+1, e);
MERGE(A, b, m, e);
int main()
int A[500];
printf("Please Enter the lenghth of array:");
scanf("%d", &lens);
printf("Please Enter the elements of the array:");
for(i=0; i& i++)
scanf("%d", &A[i]);
MERGE_SORT(A, 0, lens-1);
printf("the result of the sort is:\n");
for(i=0; i& i++)
printf("%d ", A[i]);
阅读(...) 评论()

我要回帖

更多关于 合并排序c语言 的文章

 

随机推荐