c语言编程将元素有序且相异的两个一维数组(从小到大)归并成一个有序的一维数组

 我来答
swping888
2012-11-07 · TA获得超过264个赞
知道答主
回答量:113
采纳率:0%
帮助的人:59.1万
展开全部
如果知道元素大小,就直接申明一个两个加起来的大小数组,譬如第一个数组是m个,第二个数组是n个,那么建立一个数组(假设是int型) int point3[m+n];如果不知道,就用vector。我们假设知道的;
for(int i=0; i<m+n; )
{
for(int j=0; j<m; )

{
for(int k=0; k<n)

{
if(point1[m]<point2[n]) //如果数组1的第m个较小

{
point3[i]=point1[m];

m++;

i++;

}

else //如果数组2的第n个数字较小

{
point3[i]=point2[n];

n++

i++;

}

}

}

//如果怕i超出

if( i==(m+n) )

break;
}//得到的point3即为有序的了。
hushengqq4212
2012-11-14 · TA获得超过105个赞
知道答主
回答量:68
采纳率:0%
帮助的人:29.5万
展开全部
注意思维 , 先将两个合并,在排序
#include<stdio.h>
main()
{
int a[3]={1,2,3},b[2]={5,6},c[3+2],t,i,j;
for(i=0;i<3+2;i++)
if(i<3) c[i]=a[i];
else
c[i]=b[i-3];
//排序
for(i=4;i>0;i--)
for(j=0;j<i;j++)
if(c[j]>c[j+1])
{t=c[j];c[j]=c[j+1];c[j+1]=t;}
//输出c[5]
for(i=0;i<3+2;i++)
printf("%8d",c[i]);
putchar('\n');
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式