C 语言打印数组唯一元素的程序

如何编写一个C语言程序来打印数组中的唯一元素并附带示例?在阅读本文之前,请参考数组文章以了解大小、索引位置等概念。

此程序要求用户输入数组大小和元素。接下来,它将使用 For 循环找出数组中所有唯一的元素(非重复元素)。

#include <stdio.h>
 
int main()
{
	int arr[10], FreqArr[10], i, j, Count, Size;
	
	printf("\n Please Enter Number of elements in an array  :   ");
	scanf("%d", &Size);
	
	printf("\n Please Enter %d elements of an Array  :  ", Size);
	for (i = 0; i < Size; i++)
	{
    	scanf("%d", &arr[i]);
    	FreqArr[i] = -1;
   	}     
 
	for (i = 0; i < Size; i++)
	{
		Count = 1;
		for(j = i + 1; j < Size; j++)
		{
    		if(arr[i] == arr[j])
    		{
    			Count++;
    			FreqArr[j] = 0;
    		}
    	}
    	if(FreqArr[i] != 0)
    	{
    		FreqArr[i] = Count;
		}
	}

 	printf("\n List of Unique Array Elemnts in this Array are : ");
 	for (i = 0; i < Size; i++)
  	{
  		if(FreqArr[i] == 1)
  		{
  			printf("%d\t", arr[i]);
		}		
  	}	     
 	return 0;
}
Program to Print Unique Elements in an Array 1

我们已经在之前的编程示例中解释了分析部分。请参考统计数组中每个元素的频率程序以了解分析。此外,请参考一维数组文章。

C 语言打印数组唯一元素的示例 2

这是上述程序的另一个版本。这里我们使用了多个if 语句

#include <stdio.h>
 
int main()
{
	int arr[10], i, j, k, isUnique, Size;
	
	printf("\n Please Enter Number of elements in an array  :   ");
	scanf("%d", &Size);
	
	printf("\n Please Enter %d elements of an Array  :  ", Size);
	for (i = 0; i < Size; i++)
	{
    	scanf("%d", &arr[i]);
   	}     
 
	for (i = 0; i < Size; i++)
	{
		isUnique = 1;
		for(j = i + 1; j < Size; j++)
		{
    		if(arr[i] == arr[j])
    		{
    			for(k = j; k < Size; k++)
    			{
    				arr[k] = arr[k + 1];
				}
				Size--;
				j--;
				isUnique = 0;
			}
		}
		if(isUnique != 1)
		{
			for(j = i; j < Size - 1; j++)
			{
				arr[j] = arr[j + 1];
			}
			Size--;
			i--;
		}
	}

 	printf("\n List of Unique Array Elements in this Array are : ");
 	for (i = 0; i < Size; i++)
  	{
 		printf("%d\t", arr[i]);
  	}	     
 	return 0;
}
Please Enter Number of elements in an array  :   10

 Please Enter 10 elements of an Array  :  10 20 10 30 10 40 20 90 5 20

 List of Unique Array Elements in this Array are : 30	40	90	5