How to print the duplicate elements of an array in C++

3 Answers

0 votes
#include <iostream>

void printDuplicates(int arr[], int len) {
    std::cout << arr.Length() << "\n";  
    for (int i = 0; i < len; i++) {  
        for (int j = i + 1; j < len; j++) {  
            if (arr[i] == arr[j])  
                std::cout << arr[j] << "\n";  
        }  
    }  
}

int main() {
    int arr[] = {3, 5, 9, 1, 7, 8, 1, 9, 0, 3, 9};   
       
    printDuplicates(arr, sizeof(arr)/sizeof(arr[0]));
}



/*
run:

3
9
9
1
9

*/

 



answered May 2, 2020 by avibootz
edited May 3, 2020 by avibootz
0 votes
#include <iostream>

bool contains(int arr[], size_t size, int n) {
    for (size_t i = 0; i < size; i++) {
        if (arr[i] == n)
            return true;
    }
    return false;
}
 
void printDuplicates(int arr[], int len) {
    for (size_t i = 0; i < len - 1; i++) {
        if (contains(arr, i, arr[i])) 
            continue;                         
        if (contains(arr + i + 1, len - i , arr[i]))
            std::cout << arr[i] << "\n";
    }
}

int main() {
    int arr[] = {3, 5, 9, 1, 7, 8, 1, 9, 0, 3, 9};   
       
    printDuplicates(arr, sizeof(arr)/sizeof(arr[0]));
}



/*
run:

3
9
1

*/

 



answered May 2, 2020 by avibootz
0 votes
#include <iostream>

void printDuplicates(int arr[], int len) {
    int temp[10] = {0};
    for (int i = 0; i < len; i++) {  
        for (int j = i + 1; j < len; j++) { 
            if (arr[i] == arr[j] && temp[arr[j]] == 0) { 
                std::cout << arr[j] << "\n";  
                temp[arr[j]]++;
                break;
            }
        }  
    }  
}
 
int main(void) {
    int arr[] = {3, 5, 9, 1, 7, 8, 1, 9, 0, 3, 9};   
       
    printDuplicates(arr, sizeof(arr)/sizeof(arr[0]));
}
 
 
 
 
/*
run:
 
3
9
1
 
*/

 



answered Aug 1, 2021 by avibootz

Related questions

3 answers 236 views
1 answer 116 views
1 answer 135 views
1 answer 170 views
1 answer 163 views
2 answers 194 views
2 answers 226 views
...