同C语言合并两个数组
假设有连个数组a[2][3]={1,2,3,4,5,6}b[2][3]={7,8,9,3,2,1}怎么合并成一个数组#include<stdio.h>main(){int...
假设有连个数组 a[2][3]={1,2,3,4,5,6}
b[2][3]={7,8,9,3,2,1}
怎么合并成一个数组
#include<stdio.h>
main()
{
int a[2][3]={1,2,3,4,5,6};
int b[2][3]={7,8,9,3,2,1};
int i;
int c;
printf("The array is: ");
for(i=0;i<6;i++)
scanf("%d",&a);
for(i=0;i<6;i++)
scanf("%d",&b);
printf("\n");
for(i=0;i<6;i++)
{
c[i]=a[i];
c[i+6]=b[i];
}
printf("Now,the array is: \n");
for(i=0;i<12;i++)
{
printf("%d",c[i]);
if((i+1)%4==0)
printf("\n");
}
}
上面是我的程序。不过问题很多,希望悠然能帮忙解答下,谢谢 展开
b[2][3]={7,8,9,3,2,1}
怎么合并成一个数组
#include<stdio.h>
main()
{
int a[2][3]={1,2,3,4,5,6};
int b[2][3]={7,8,9,3,2,1};
int i;
int c;
printf("The array is: ");
for(i=0;i<6;i++)
scanf("%d",&a);
for(i=0;i<6;i++)
scanf("%d",&b);
printf("\n");
for(i=0;i<6;i++)
{
c[i]=a[i];
c[i+6]=b[i];
}
printf("Now,the array is: \n");
for(i=0;i<12;i++)
{
printf("%d",c[i]);
if((i+1)%4==0)
printf("\n");
}
}
上面是我的程序。不过问题很多,希望悠然能帮忙解答下,谢谢 展开
2个回答
展开全部
合并数组的操作,具体算法依赖于合并的规则。
其通用流程如下:
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的每个元素,赋值到目标数组的对应位置上即可。
展开全部
int main(int argc, char* argv[])
{
int a[2][3]={1,2,3,4,5,6};
int b[2][3]={7,8,9,3,2,1};
int i,j;
int c[12]; //c是个数组哈
int k=0;
printf("The array is: ");
//你已经有a和b了不用再输入了,这样输入也不对
// for(i=0;i<6;i++)
// scanf("%d",&a);
// for(i=0;i<6;i++)
// scanf("%d",&b);
//printf("\n");
//把二维的放到一个一维数组里面,二维数组双循环
for(i=0;i<2;i++)
for(int j=0;j<3;j++)
{
c[k++]=a[i][j];
}
for(i=0;i<2;i++)
for(int j=0;j<3;j++)
{
c[k++]=b[i][j];
}
printf("Now,the array is: \n");
for(i=0;i<12;i++)
{
printf("%d",c[i]);
if((i+1)%4==0)
printf("\n");
}
return 0;
}
{
int a[2][3]={1,2,3,4,5,6};
int b[2][3]={7,8,9,3,2,1};
int i,j;
int c[12]; //c是个数组哈
int k=0;
printf("The array is: ");
//你已经有a和b了不用再输入了,这样输入也不对
// for(i=0;i<6;i++)
// scanf("%d",&a);
// for(i=0;i<6;i++)
// scanf("%d",&b);
//printf("\n");
//把二维的放到一个一维数组里面,二维数组双循环
for(i=0;i<2;i++)
for(int j=0;j<3;j++)
{
c[k++]=a[i][j];
}
for(i=0;i<2;i++)
for(int j=0;j<3;j++)
{
c[k++]=b[i][j];
}
printf("Now,the array is: \n");
for(i=0;i<12;i++)
{
printf("%d",c[i]);
if((i+1)%4==0)
printf("\n");
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询