C语言如何合并数组?
以两个数组作为输入,尝试合并或连接两个数组并将结果存储在第三个数组中。
合并两个数组的逻辑如下 -
J=0,k=0for(i=0;i<o;i++) {// 合并两个数组
if(a[j]<=b[k]){
c[i]=a[j];
j++;
} else {
c[i]=b[k];
k++;
}
}
程序
下面给出的程序显示了如何在 C 编程语言中合并两个数组 -
#include<stdio.h>输出结果#include<stdlib.h>
int main(){
int a[10],b[10],c[20],m,n,o,i,j,k,temp;
printf("Enter size of Array1\n");
scanf("%d",&n);
printf("Enter size of Array2\n");
scanf("%d",&m);
o=m+n; //第三个数组的大小
printf("Enter Elements of Array1\n");
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("Enter Elements of Array2\n");
for(i=0;i<m;i++){
scanf("%d",&b[i]);
}
//排序第一个数组
for(i=0;i<n;i++){
for(j=0;j<n-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//排序第二个数组
for(i=0;i<m;i++){
for(j=0;j<m-1-i;j++){
if(b[j]>b[j+1]){
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
printf("Elements of Array1\n");
for(i=0;i<n;i++){
printf("a[%d]=%d\n",i,a[i]);
}
printf("Elements of Array2\n");
for(i=0;i<m;i++){
printf("b[%d]=%d\n",i,b[i]);
}
j=0;
k=0;
for(i=0;i<o;i++){ // 合并两个数组
if(a[j]<=b[k]){
c[i]=a[j];
j++;
}
else{
c[i]=b[k];
k++;
}
}
printf("Merged array is :\n");
for(i=0;i<o;i++){
printf("c[%d]=%d\n",i,c[i]);
}
}
执行上述程序时,会产生以下结果 -
Enter Elements of Array11
2
3
4
Enter Elements of Array2
6
8
3
Elements of Array1
a[0]=1
a[1]=2
a[2]=3
a[3]=4
Elements of Array2
b[0]=3
b[1]=6
b[2]=8
Merged array is:
c[0]=1
c[1]=2
c[2]=3
c[3]=3
c[4]=4
c[5]=6
c[6]=8
以上是 C语言如何合并数组? 的全部内容, 来源链接: utcz.com/z/361003.html