原理:先将两个数组复制到第三个数组中,然后对第三个数组排序
如果不使用第三个函数,那么下面这个函数一样可以做到,不过函数声明就要改成:
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
}
#include "stdio.h"void sort(int a[],int n)
{
int i,j,t
for(i=0i<ni++)
for(j=0j<n-1j++)
if(a[j]>橡神亮a[j+1])
{
t=a[j]
a[j]=a[j+1]
a[j+1]=t
}
}
void prn (int a[],int n)
{
int i
for(int i=0i<ni++)
printf("%d ",a[i])
printf("瞎逗\n"梁宽)
}
void main()
{
int a[]={0,2,4,6,8,1,3,5,7,9}
sort(a,10)
prn(a,10)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)