Qn: Write a c program to merge tow arrays and get new array without any duplicates.
-By Venkatesh, Last Update On 27th May,2019 01:46 pm

கொடுக்கப்பட்டுள்ள array-ல் எந்த array சிறியதோ அந்த array-வை new_array-ல் சேர்க்கவேண்டும். ஆகவே array1-ல் உள்ள அனைத்து element-களையும் for loop மூலமாக new_array-ல் சேர்க்கபடுகிறது. அதன்பிறகு array2-ல் உள்ள ஒவொரு element-ஐயும் new_array-ல் சேர்க்கும்போது array2-ல் உள்ள element ஏற்கனவே new_array-ல் சேர்க்கப்பட்டு உள்ளதா? என்று சரிபார்த்து, ஏற்க்கனவே சர்க்கபடாத element-ஐ மட்டும் புதிதாக new_array-ல் சேர்த்துகொள்ளும்.

கொடுக்கப்பட்டுள்ள இரண்டு array-ன் length-ஐ தான் new_array-ன் size-ஆக set செய்யவேண்டும். ஏனெனில் ஒருவேலை இரண்டு array-விழும் ஒரு duplicate element-ம் இல்லையனில் இரண்டு array-ல் உள்ள அனைத்து element-களையும் new_array-ல் சேர்க்கவேண்டியது மிகவும் அவசியமாகிறது. சிறிய array-ன் length-ஐ தான் index value-ஆக set செய்யவேண்டும்.

#include<stdio.h>
#include<conio.h>
int main(){
int array1[] = {1, 2, 3, 4, 5, 6};
int array2[] = {1, 5, 3, 6, 8, 9, 0};
int i,j,count;
int array1_length=sizeof(array1)/sizeof(int);
int array2_length=sizeof(array2)/sizeof(int);
int new_array[array2_length+array2_length];
int index=array1_length;
for (i=0;i<array1_length;i++) {
    new_array[i] = array1[i];
}
for (i=0;i<array2_length;i++) {
//check already exist
    count = 0;
    for(j=0;j<index;j++){
        if (new_array[j] == array2[i]) {
            count++;
            break;
        }
    }
    if (count == 0) {
        new_array[index] = array2[i];
        index++;
    }
}
for(i=0;i<index;i++){
    printf(" %d ",new_array[i]);
}
return 0;
}
Output:
1 2 3 4 5 6 8 9 0

Pgcomments

Comments