如何在 C 语言中合并两个数组?


将两个数组作为输入并尝试合并或连接两个数组,并将结果存储在第三个数组中。

合并两个数组的逻辑如下 −

J=0,k=0
for(i=0;i<o;i++) {// merging two arrays
   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
");    scanf("%d",&n);    printf("Enter size of Array2
");    scanf("%d",&m);    o=m+n; //size of third array    printf("Enter Elements of Array1
");    for(i=0;i<n;i++){       scanf("%d",&a[i]);    }    printf("Enter Elements of Array2
");    for(i=0;i<m;i++){       scanf("%d",&b[i]);    }    //sorting first array    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;          }       }    }    //sorting second array    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
");    for(i=0;i<n;i++){       printf("a[%d]=%d
",i,a[i]);    }    printf("Elements of Array2
");    for(i=0;i<m;i++){       printf("b[%d]=%d
",i,b[i]);    }    j=0;    k=0;    for(i=0;i<o;i++){ // merging two arrays       if(a[j]<=b[k]){          c[i]=a[j];          j++;       }       else{          c[i]=b[k];          k++;       }    }    printf("Merged array is :
");    for(i=0;i<o;i++){       printf("c[%d]=%d
",i,c[i]);    } }

输出

执行上述程序时,它会产生以下结果 −

Enter Elements of Array1
1
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

更新时间:2021-03-24

5K+ 次浏览

职业生涯起步

完成课程获得认证

开始
广告