怎么用c语言将两个数组并起来?
展开全部
看代码,写了几种数组的合并:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void character()
{
char c1[]={'H','e','l','l','o'};
char c2[]={' ','w','o','r','l','d','!'};
int k=0;
char new_c[100];
for(int i=0;i<sizeof(c1);i++)//注意是sizeof()
new_c[k++]=c1[i];
for( i=0;i<sizeof(c2);i++)
new_c[k++]=c2[i];
new_c[k]='\0';
puts(new_c);
}
void string()
{
char s1[]={"hello,"};
char s2[]={"c语言!"};
int k=0;
char new_s[100];
for(int i=0;i<strlen(s1);i++)//注意是strlen()
new_s[k++]=s1[i];
for(i=0;i<strlen(s2);i++)
new_s[k++]=s2[i];
new_s[k]='\0';
puts(new_s);
}
void number()
{
int num1[]={1,2,3},*p1=num1;
int num2[]={4,5,6,'\0'};//整型数组,字符数组是没有结束符号,自己加入‘\0’
int new_num[100];
int k=0;
for(int i=0;i<sizeof(num1)/sizeof(int);i++)
{
new_num[k++]=*(p1++);
}
for(i=0;num2[i]!=0;i++)
{
new_num[k++]=num2[i];
}
new_num[k]='\0';
for(i=0;new_num[i]!=0;i++)
{
printf("%d ",new_num[i]);
}
puts("");
}
void main()
{
character();//字符数组的合并
string();//字符串的合并
number();//整型数组的合并,做法是一样的
}
运行截图:
展开全部
#include<stdio.h>
int main()
{
int a[10],b[10],c[20],i,j,m,n,t;
scanf("%d",&m);
for(i=0;i<m;i++)
scanf("%d",&a[i]);
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&b[i]);
for(i=0;i<m;i++)
c[i]=a[i];
for(i=m;i<n+m;i++)
c[i]=b[i-m];
for(i=0;i<m+n-1;i++)
for(j=0;j<m+n-1-i;j++)
{
if(c[j]<c[j+1])
{
t=c[j];
c[j]=c[j+1];
c[j+1]=t;
}
}
for(i=0;i<m+n;i++)
printf("%d ",c[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是用一个为l1+l2的数组,1-l1存a1,l1+1~l1+l2存a2.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main()
{
int a[10];
int b[10];
int c[20];
for(int i=0;i<10;i++)
c[i]=a[i];
for(int j=10;j<20;j++)
c[j]=a[j-10];
return 0;
}
{
int a[10];
int b[10];
int c[20];
for(int i=0;i<10;i++)
c[i]=a[i];
for(int j=10;j<20;j++)
c[j]=a[j-10];
return 0;
}
追问
for(int j=10;j<20;j++)
c[j]=a[j-10];
啥意思?
不用考虑两个数组中相同的元素吗?
追答
不好意思啊,写错了,应该是c[j]=b[j-10];一个数组中允许有相同的元素啊
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询