如何编写 C 语言程序来统计数组中重复元素的总数?在统计数组中的重复元素之前,请参考 C 语言数组文章,了解数组大小、索引位置等信息。
C 语言统计数组中重复元素总数的程序示例
此程序要求用户输入数组大小和数组元素。接下来,它将使用 For 循环计算此数组中存在的重复元素的总数。
#include <stdio.h>
int main()
{
int arr[10], i, j, Size, Count = 0;
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++)
{
for(j = i + 1; j < Size; j++)
{
if(arr[i] == arr[j])
{
Count++;
break;
}
}
}
printf("\n Total Number of Duplicate Elements in this Array = %d ", Count);
return 0;
}

在此程序中,我们声明了一个大小为 10 的一维数组 arr[],还声明了变量 i 用于迭代 数组 元素。下面的 printf 语句要求用户输入数组 arr[] 的大小(数组可以容纳的元素数量)。然后,scanf 语句会将用户输入的值赋给 Size 变量。
printf("\n Please Enter Number of elements in an array : ");
scanf("%d", &Size);
下面的 For 循环 将帮助迭代 arr[5] 数组中的每个单元格。For 循环中的条件 (i < Size) 确保编译器不会超出数组限制。For 循环内的 C 编程 scanf 语句会将用户输入的值存储到每个单独的数组元素中,例如 arr[0]、arr[1]、arr[2]、arr[3]、arr[4]。
for (i = 0; i < Size; i++)
{
scanf("%d", &arr[i]);
}
下一行,我们还有另一个 for 循环。它用于迭代数组中的每个元素。If 语句 用于检查重复项。
for (i = 0; i < Size; i++)
{
for(j = i + 1; j < Size; j++)
{
if(arr[i] == arr[j])
{
Count++;
break;
}
}
}
用户输入的数组为:a[5] = {10, 20, 10, 30, 20}
第一个 For 循环 – 第一次迭代:for(i = 0; i < 5; 0++)
条件 (0 < 5) 为真。
第二个 For 循环 – 第一次迭代:for(j = 0 + 1; 1 < 5; 1++)
条件 (1 < 5) 为真。因此,它将开始执行循环内的语句。
if(arr[i] == arr[j])
if(10 == 20) – 条件为 False
第二个 For 循环 – 第二次迭代:for(j = 2; 2 < 5; 2++)
条件 (2 < 5) 为真。因此,它将开始执行循环内的语句。
if(arr[i] == arr[j])
if(10 == 10) – 条件为 True
计数将增加到 1。对剩余的迭代执行相同的操作。
C 语言统计数组中重复元素总数的程序示例 2
此统计重复数组元素的程序与上面的程序相同,但这次我们使用 函数 概念分离了逻辑。
#include <stdio.h>
int Total_Duplicates(int arr[], int Size);
int main()
{
int arr[10], i, Size, Count = 0;
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]);
}
Count = Total_Duplicates(arr, Size);
printf("\n Total Number of Duplicate Elements in this Array = %d ", Count);
return 0;
}
int Total_Duplicates(int arr[], int Size)
{
int i, j, Count = 0;
for (i = 0; i < Size; i++)
{
for(j = i + 1; j < Size; j++)
{
if(arr[i] == arr[j])
{
Count++;
break;
}
}
}
return Count;
}
Please Enter Number of elements in an array : 10
Please Enter 10 elements of an Array : 1 2 3 4 1 2 5 6 5 9
Total Number of Duplicate Elements in this Array = 3