How to find all common elements in given three sorted arrays with C++

1 Answer

0 votes
#include <iostream>

void PrintCommonElementsInThreeArrays(int arr1[], int arr2[], int arr3[], 
                                      int size1, int size2, int size3) {
    int i = 0,  j = 0, k = 0; 
  
    while(i < size1 && j < size2 && k < size3) {
        if (arr1[i] == arr2[j] && arr3[k] == arr1[i]) {
            std::cout << arr1[i] << " ";
            i++; j++; k++;
        }
        else if (arr1[i] < arr2[j])
                i++;
        else if (arr2[j] < arr3[k])
                j++;
        else
            k++;
    }
}

int main() {
    int arr1[] = {2, 5, 6, 7, 9, 12, 20, 25, 30, 31};
    int arr2[] = {4, 7, 10, 11, 20, 21, 30, 31, 37};
    int arr3[] = {1, 2, 5, 7, 9, 18, 19, 20, 31, 32, 38, 39, 40, 50};
    
    int size1 = sizeof(arr1)/sizeof(arr1[0]);
    int size2 = sizeof(arr2)/sizeof(arr2[0]);
    int size3 = sizeof(arr3)/sizeof(arr3[0]);
  
    PrintCommonElementsInThreeArrays(arr1, arr2, arr3, size1, size2, size2);
}




/*
run:

7 20 31 

*/

 



answered Sep 21, 2022 by avibootz
edited Sep 21, 2022 by avibootz

Related questions

...