c语言把两个一维数组合并 两个数组合并C语言?
两个数组合并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_px=tmp
}
if(!tmp_px)
{
char ch=*tmp_dest
*tmp_dest=*tmp_px
*tmp_px=ch
}
}
return dest
}
怎么用C语言编写求两个数组的并集的程序?
#include <stdio.h>#include <string.h>int main(int argc, char* argv[]){ char a[20],b[20] int n,m,j,k printf ("请输入第一个集合内容n") scanf ("%s",a) j=strlen(a) printf ("请输入第二个集合内容n") scanf ("%s",b) k=strlen(b) printf ("集合的交集是:") ///////////////////////计算2个数组的交集//////////////////// //flag标志位,index数组下标标志位 int flag=1, index=0 //c[20]保存交集的数组,d[40]保存并集的数组 char c[20]="",d[40]="" for (n=0n<jn ) { for (m=0m<=km ) { if(a[n] == b[m]) { c[index ] = a[n] break } } } printf("n%sn",c) ////////////////////////////计算2个数组的并集/////////////////////// flag=1 index=0 for (n=0n<jn ) { for(m=0m<indexm ) { if(d[m] == a[n]) flag=0 } if(flag) { d[index ]=a[n] } flag=1 } flag=1 for (n=0n<jn ) { for(m=0m<indexm ) { if(d[m] == b[n]) flag=0 } if(flag) { d[index ]=b[n] } flag=1 } printf ("集合的并集是:") printf("n%sn",d) return 0}
c语言把两个一维数组合并 c语言合并两个有序数组 c语言两个数组相加
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。