इनपुट के रूप में दो सरणियाँ लें और दो सरणियों को मिलाने या जोड़ने का प्रयास करें और परिणाम को तीसरे सरणी में संग्रहीत करें।
दो सरणियों को मिलाने का तर्क नीचे दिया गया है -
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++; } }
कार्यक्रम
नीचे दिया गया प्रोग्राम है जो दिखाता है कि सी प्रोग्रामिंग भाषा में दो सरणियों को कैसे मर्ज किया जाए -
#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]); } }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
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