如何编写一个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;
}

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