Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,900 questions

51,831 answers

573 users

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

1 Answer

0 votes
#include <stdio.h>
 
int main(void)
{
    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++;
		}
	}
 
	printf("Array without duplicate elements:\n");
	for (i = 0; i < size; i++) 
		printf("%3d ", arr[i]);
   
	printf("\n");
   
	printf("Array with zero set elements instead the duplicate elements:\n");
	size = sizeof(arr) / sizeof(int); 
	for (i = 0; i < size; i++) 
		printf("%3d ", arr[i]);
     
    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
...