2016 - 2024

感恩一路有你

c语言把两个一维数组合并 两个数组合并C语言?

浏览量:2953 时间:2021-03-12 20:03:20 作者:admin

两个数组合并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语言两个数组相加

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。