c语言合并两个数组?
代码示例:
intmain(intargc,char*argv[
]{
inta[2][3]={1,2,3,4,5,6}
intb[2][3]={7,8,9,3,2,1}
inti,j
intc[12]//c是一个数组ha
]intk=0
printf(“数组是:”)
//您已经有了a和b,所以您不需要再输入它们了
//for(i=0i<6i)
//scanf(%d“,&a
//for(i=0i<6i)
//二维数组被放入一维数组,二维数组是一维数组,二维数组是双循环的
for(i=0i<2i)
for(intj=0j<3j)
!///将二维数组放入一维数组,二维数组是一维数组,二维数组是双循环的
对于(i=0i<2i
!][c[c[k
![c[c[c[k
!]printf(现在,数组是[now,数组是[now,数组是:数组是:这是数组是:这是数组是[现在],数组是:这是[现在,[i
]if((i)]1)%4==0)
printf(“n”)
}
return0
}
intmain(){chara[]=“123456”charb[]=“abcde”intbuflen=strlen(a)strlen(b)char*p=(char*)malloc(buflen1)memset(p,0,buflen)printf(%dn”,buflen)strcpy(p,a)strcat(p,b)printf(%sn”,p)free(p)}不能更改c的数组因此,数组合并的思想是将数组放入一个足够大的空间中,形成一个新的数组。上面的函数是一个比较简单的合并方法
基本思想:
1)取a、b数组的第一个元素进行比较,将小元素放入c数组;
2)将小元素所在数组的下一个元素与上一次比较后的另一个数组的大元素进行比较,重复上述操作上面的比较过程直到一个数组排在第一位;
3)将另一个数组的剩余元素复制到c数组中,并对它们进行合并和排序。
#include
voidmain()
{
int
a[10],b[10],c[20],i,ia,ib,ic
printf(“请输入第一个数组n”)
for(i=0i
scanf(“%d”,&a[i])
for(i=0i
scanf(“%d”,&b[i])
printf(“n”)
ia=0ib=0ic=0
而(ia
{
c[ic]=a[ia
]ia
}
否则{
c[ic]=b[ib
]ib
}
ic
}
而(ia
{
c[ic]=a[ia
]ia
ic
}
而(ib
{
c[ic]=b[ib
]ib
ic
}
而(i=0i
{
printf(“]”,c[i])}
}
原文标题:c语言把两个数组连接 c语言合并两个数组?,如若转载,请注明出处:https://www.saibowen.com/wenda/23610.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。