How to delete duplicate elements (set them to zero) from one dimensional int array in C++

1 Answer

0 votes
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
	int arr[] = { 1, 2, 3, 2, 5, 6, 6, 2 };
	int i, j, k, size;

	size = sizeof(arr) / sizeof(int);

	for (i = 0; i < size; i++)
	{
		for (j = i + 1; j < size;)
		{
			if (arr[j] == arr[i])
			{
				for (k = j; k < size - 1; k++)
				{
					arr[k] = arr[k + 1];
				}
				size--;
				arr[k] = 0;
			}
			else
				j++;
		}
	}

	cout << "Array without duplicate elements:\n";
	for (i = 0; i < size; i++)
		cout << arr[i] << setw(3);

		cout << endl;

	printf("Array with zero set elements instead the duplicate elements:\n");
	size = sizeof(arr) / sizeof(int);
	for (i = 0; i < size; i++)
		cout << arr[i] << setw(3);
	
	return 0;
}

/*
run: 

Array without duplicate elements:
1  2  3  5  6
Array with zero set elements instead the duplicate elements:
1  2  3  5  6  0  0  0

*/

 



answered Feb 11, 2016 by avibootz
...