Hi ,
i have to merge two arrays that are already sorted in ascending order .Somehow my code doesn't give the correct output .Can someone please help
include<stdio.h>
#include<conio.h>
void merge(int a[],int b[],int m,int n);
int main(void)
{
int a[20],b[20];
int i,n,m;
printf("\nEnter the number of elements in array A: ");
scanf("%d",&n);
printf("\nEnter the elements: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\nEnter the number of elements in array B: ");
scanf("%d",&m);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
printf("\nAfter merging the final array C is ");
merge(a,b,m,n);
getch();
return 0;
}
void merge(int a[],int b[],int m,int n)
{
int i=0,j=0,k=0,loop;
int c[40];
while(i<n && j<m)
{
if(a[i]<=b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];
}
if(i<n)
c[k++]=a[i++];
else if(j<m)
c[k++]=b[j++];
for(loop=0;loop<--k;loop++)
printf("%d\n",c[loop]);
}
Output:
enter the number of elements in array A:4
enter the elements:
1
2
3
4
Enter the number of elements in array B:4
Enter the elements :5
6
7
8
After merging
1
2
Please help!