c語言把兩個一維數(shù)組合并 兩個數(shù)組合并C語言?
兩個數(shù)組合并C語言?這里是借用第三個數(shù)組。原理:先將兩個數(shù)組復制到第三個數(shù)組中,然后對第三個數(shù)組排序如果不使用第三個函數(shù),那么下面這個函數(shù)一樣可以做到,不過函數(shù)聲明就要改成:char* fun(cha
兩個數(shù)組合并C語言?
這里是借用第三個數(shù)組。
原理:先將兩個數(shù)組復制到第三個數(shù)組中,然后對第三個數(shù)組排序
如果不使用第三個函數(shù),那么下面這個函數(shù)一樣可以做到,不過函數(shù)聲明就要改成:
char* fun(char *dest, char *str, char *dest)
/*------------------------------函數(shù)--------------------------------*/
char* fun(char *str1,char *str2,char *dest) //前提,目標數(shù)組能偶容納兩個數(shù)組
{
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語言編寫求兩個數(shù)組的并集的程序?
#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個數(shù)組的交集//////////////////// //flag標志位,index數(shù)組下標標志位 int flag=1, index=0 //c[20]保存交集的數(shù)組,d[40]保存并集的數(shù)組 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個數(shù)組的并集/////////////////////// 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}