将两个数组合并到一个数组并排序的c语言程序编写

如题所述

这里是借用第三个数组。
原理:先将两个数组复制到第三个数组中,然后对第三个数组排序
如果不使用第三个函数,那么下面这个函数一样可以做到,不过函数声明就要改成:
char* fun(char *dest, char *str, char *dest)
/*------------------------------函数--------------------------------*/
char* fun(char *str1,char *str2,char *dest) //前提,目标数组能偶容纳两个数组
{
char *tmp=dest;
char *tmp_dest=dest;
if(!dest)
return NULL;
while(*str1) //将str1复制进dest
*tmp++=*str1++;
while(*str2) //将str2复制进dest
*tmp++=*str2++;
tmp_dest--; //
while(*++tmp_dest) //选择排序法
{
char *tmp_px=NULL;
tmp=tmp_dest;
while(*++tmp) //找到后面一串的最值
{
if(*tmp_dest<*tmp)
tmp_px=tmp;
}
if(!tmp_px)
{
char ch=*tmp_dest;
*tmp_dest=*tmp_px;
*tmp_px=ch;
}
}
return dest;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-04-29
借用第三个数组,采用赋值合并,再做排序。
相似回答