问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言合并两个数组

发布网友 发布时间:2022-04-19 09:47

我来回答

4个回答

热心网友 时间:2023-09-15 06:27

不知道楼主是要普通的合并然后排序呢还是高级算法里的归并排序。后者的话建议看看百度百科http://ke.baidu.com/view/90797.htm
前者。
#include<stdio.h>
int
main()
{
int
a[100],b[100];
int
anum,bnum,i,j,k,temp;
printf("请输入数组a的元素个数:");
scanf("%d",&anum);
for(i=0;i<anum;i++)//数组a输入
scanf("%d",&a[i]);
printf("请输入数组b的元素个数:");
scanf("%d",&bnum);
for(i=0;i<bnum;i++)//数组b输入
scanf("%d",&b[i]);
k=anum+bnum;//计算数据总个数
for(i=0;i<bnum;i++)//b数组合入a数组
a[anum+i]=b[i];
for(i=0;i<k-1;i++)
//选择排序
for(j=i+1;j<k;j++)
if(a[i]<a[j])
{temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(i=0;i<k;i++)//输出最终数组
printf("%8d",a[i]);
return
0;
}

热心网友 时间:2023-09-15 06:27

#include <stdio.h>

int main()
{
int a[5]={3,4,5,6,7};
int b[4]={11,22,33,44};
int c[9]={0};
int i=0,j;
for (;i<sizeof(a)/sizeof(int);i++)
c[i]=a[i];
j=i;
for (j=0;j<sizeof(b)/sizeof(int);j++,i++)
c[i]=b[j];

return 0;
}

#include <stdio.h>

int main()
{
int a[5]={3,4,5,6,7};
int b[4]={11,22,33,44};
int c[9]={0};
int i=0,j;
for (;i<5;i++)
c[i]=a[i];
j=i;
for (j=0;j<4;j++,i++)
c[i]=b[j];

return 0;
}

或者用memcpy,更简单

热心网友 时间:2023-09-15 06:28

#include<stdio.h>
void main()
{
int a[5]={3,4,5,6,7};
int b[4]={11,22,33,44};
int c[9]={0};
int i,j;
for (i=0;i<5;i++)
c[i]=a[i];
for (j=0;j<4;j++,i++)
c[i]=b[j];
for(i=0;i<9;i++)
printf("%d,",c[i]);
printf("\n");
}

楼上的答案中间的“j=i”是多余的。

热心网友 时间:2023-09-15 06:28

合并数组的操作,具体算法依赖于合并的规则。
其通用流程如下:
1
建立一个足够容纳两个数组所有元素的目标数组。如果规则规定将一个数组合并到另一个之中,那么需要保证目标数组有可以容纳两个数组的空间,否则会出现越界。
2
遍历其中一个数组,并赋值到目标数组中。如果是一个数组合并到另一个,那么此步可以省略;
3
遍历另一个数组,按照规则插入到目标数组中。
在不同规则下,合并算法会有差异,如将长为lb的b数组附加到长为la的a数组结尾的操作,可以写作
int i;
for(i = 0; i < lb; i ++)
a[la+i]=b[i];而将长度均为l的数组a,b,交替合并到c中,可以写作
int i;
for(i = 0; i < l; i ++)
{
c[i*2] = a[i];
c[i*2+1] = b[i];
}不管是何种方式,合并的本质就是,把a和b的每个元素,赋值到目标数组的对应位置上即可。
c语言,怎样合并数组

//两个数组合并,参考代码:#include "stdio.h"int d=0; //用于记录数组c的大小,和数组c的输出类的一些操作void main(){ int a[50],b[50],c[100]; int i,j,k; //i表示a数组的大小 j表示b数组的大小 k用于数组的输出 printf("数组a的输入,输入一个数,表明你要输入...

同C语言合并两个数组

3 遍历另一个数组,按照规则插入到目标数组中。在不同规则下,合并算法会有差异,如将长为lb的B数组附加到长为la的A数组结尾的操作,可以写作 int i;for(i = 0; i &lt; lb; i ++) A[la+i]=B[i];而将长度均为l的数组A,B,交替合并到C中,可以写作 int i;for(i = 0; i &lt; l;...

c语言中的merge函数

要实现数组的合并,首先需要理解C语言中数组的本质——它们是固定大小的连续内存块。因此,合并两个数组意味着重新分配内存以容纳更多的元素,并将这些元素从源数组复制到新的内存位置。这个过程涉及到指针操作和内存管理。要创建一个自定义的merge函数,你需要考虑以下几个步骤:1. 确定合并策略:是创建一...

请问C语言中将两个数组合并,并且合并后的数组无相同元素,怎么编程?求...

//假定数组SendByte[] 每个元素的值 不大于 0xff, 那么1个int 可用 1 字节 传送:for (i=0;i&lt;5;i++) sb[i]= (unsigned char) SendByte[i];sb[5]='\0';for (i=0;i&lt;5;i++) printf("%x ",sb[i]);printf("\n");return 0;} ...

请问如何使用C语言把两个数组合并在一个数组里?

int input(int *p,int n){ char i,ch;for(i=0;i&lt;n;i++){ if((ch=getchar())=='\n')break;else if(ch&gt;='0' &amp;&amp; ch&lt;='9')ungetc(ch,stdin);scanf("%d",p+i);} return i;} int main(int argc,char *argv[]){ int a[21],b[10],i,j,k;printf("Input array a.....

如何用C语言编程将两个有序数组a,b合并成一个数组c

int i = j = k = 0;//循环比较,将小的插入到C数组中 while ( i &lt; 3 &amp;&amp; j &lt; 3) { if (a [i] &lt; b [j]) c[k++] = a[i++];else c[k++] = b[j++];} //处理其中一个数组剩下 while (i &lt; 3) c[k++] = a[i++];while( j &lt; 3) c[k++] = b[j++]...

c语言中合并两个降序数组,使合并后的数组仍然保持降序排列

int cmp(const void*a,const void*b){//快速排序比较函数 int *x=(int*)a;int *y=(int*)b;return *y-*x;} int main(){ int a[N]={9,7,5,3,1};int b[N]={8,6,4,2,0};int sum[2*N]={0};//合并数组 int k=0;//合并数组元素个数的计数 for(int i=0;i&lt;5;i+...

合并两个数组 a=[1,7,9,2,5] b=[-1,7,9,2,5,6,8,-2]C语言

int i=0,j=0,k=5;for(i=0;i<5;i++)*(c+i)=*(a+i);for(j=0;j<8;j++){ for(i=0;i<5;i++)if(*(c+i)==*(b+j)break;if(i==5)*(c+k++)=*(b+j);} for(i=0;i<k;i++)printf("%4d",*(c+k));printf("\n");} 以上程序合并ab两个数组,并保留一...

一个C语言程序问题,合并两个数组元素,相同的元素只输出一个,并按大小...

c[n] = a[i];i++;n++;} while (i &lt; p);} 我解释一下吧,你第一个判断a[i]

c语言怎么把两个一维数组合并成一个?不需要排序

再定义一个数组。然后赋值 int a[3] = {1, 2, 3};int b[3] = {4, 5, 6};int c[6] = {0};memcpy(c, a, 3 * sizeof(int));memcpy(c + 3, b, 3 * sizeof(int));

将两个数组合并为一个数组并排序 两个数组合并到一个数组 将两个数组合并并排序 将两个数组合并并按升序 两个升序数组合并为一个 两个数组合并 怎么把两个数组合并 两个数组日期排序合并 c语言定义一个数组
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在微信通信录里的好友点开可以看单最后一次和他发的时间吗?_百度... 为什么我刚刚在设置里面把有些应用程序的蜂窝移动网络关闭了,把设置... 在市场买的死螃蟹放冰箱冷冻了几天能吃吗?吃了会有什么问题? 腾讯会议怎么开启演讲者模式? 腾讯会议怎么设置演讲者视图? ipad屏幕尺寸在哪里看 如何准确识别iPad型号和尺寸通过轻松辨识iPad的型号和尺寸 ...我都删除了,怎么还自动提醒行程,怎么不让提醒 OPPO手机的Breeno快看如何帮助我们优化日常行程? 136×84的竖式 C语言怎么合并两个字符串? 怎么把两个不同的c程序合并成一个,实现不同的功能 宇宙的秘密 台式电脑开机一小时耗多少度电啊? 404 Not Found 日法德加有没有高铁出轨,爆炸,酿成严重伤亡的例子 404 Not Found 秦智伟的成绩 锐捷如何划分VLAN 锐捷交换机默认密码是多少 404 Not Found 中国银行的代码是什么? 高温合金有哪些牌号? 日立电梯图纸上的图号都代表什么 UC浏览器怎么用手机流量下载不了视频,显示网络错误 我从QQ 浏览器上面下载视频会花费自己的流量吗? 怀民亦未寝什么梗 王思聪欠款1亿5千万,从微博彻底消失,人生的丰年与荒年,你怎么看? 微博是怎么产生的 新浪微博为什么这三天把评论系统都关了 excel里怎样吧AB数据批量合并到C? C语言文件合并 C语言程序如何合并? 如何将硬盘C,D分区合并 c语言合并两个文件 腾讯大王卡在QQ浏览器里下载视频要不要流量 怎么样合并C、D盘 c语言,怎样合并数组 c语言怎么合并两个数组 怎样合并C和D盘的分区? Win8如果想要合并C和D盘会怎么样,该怎么弄? 如何将两个C语言程序合并成为一个可选择性的程序 win10怎么把多余分区合并给C 怎样把电脑D盘合并到C系统盘 怎样合并C和D盘_ 奔驰s65电瓶充电电压17.5v正常吗? 西门子S65手机充电的问题 syndex蓝牙耳机s65充电时灯亮吗? 404 Not Found S65评测-请各路高手评测