w3resource

C++ Exercises: Find the element that appears once in an array of integers and every other element appears twice

C++ Array: Exercise-23 with Solution

Write a C++ program to find the element that appears once in an array of integers and every other element appears twice.

Pictorial Presentation:

C++ Exercises: Find the element that appears once in an array of integers and every other element appears twice

Sample Solution:

C++ Code :

#include <iostream>
using namespace std;
 
int search_single_element(int array1[], int s1)
    {
        int result = array1[0];
        for (int i = 1; i < s1; i++)
            result = result ^ array1[i];
 
        return result;
    }


int main()
{
    int array1[] = {3, 1, 5, 1, 5, 7, 9, 7, 9};
    int se;
 
    int s1 = sizeof(array1) / sizeof(array1[0]);
    
    cout << "Original array: ";
    
    for (int i=0; i < s1; i++) 
    cout << array1[i] <<" ";
    
    se = search_single_element(array1, s1);
    cout <<"\nSingle element: " << se;
    return 0; 
}

Sample Output:

Original array: 3 1 5 1 5 7 9 7 9 
Single element: 3

Flowchart:

Flowchart: Find the element that appears once in an array of integers and every other element appears twice

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C++ program to find the missing element from two given arrays of integers except one element.
Next: Write a C++ program to find the first repeating element in an array of integers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

C++ Programming: Tips of the Day

Can I assume (bool)true == (int)1 for any C++ compiler?

According to the standard, you should be safe with that assumption. The C++ bool type has two values - true and false with corresponding values 1 and 0.

The thing to watch about for is mixing bool expressions and variables with BOOL expression and variables. The latter is defined as FALSE = 0 and TRUE != FALSE, which quite often in practice means that any value different from 0 is considered TRUE.

A lot of modern compilers will actually issue a warning for any code that implicitly tries to cast from BOOL to bool if the BOOL value is different than 0 or 1

Ref: https://bit.ly/3PWhs5N