Computer >> Máy Tính >  >> Lập trình >> lập trình C

Làm thế nào để hợp nhất mảng trong ngôn ngữ C?

Lấy hai mảng làm đầu vào và cố gắng hợp nhất hoặc nối hai mảng và lưu trữ kết quả trong mảng thứ ba.

Lôgic để hợp nhất hai mảng được đưa ra bên dướ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++;
   }
}

Chương trình

Dưới đây là chương trình chỉ ra cách hợp nhất hai mảng trong ngôn ngữ lập trình 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; //size of third array
   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]);
   }
   //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\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++){ // merging two arrays
      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]);
   }
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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