C 语言统计数组中重复元素总数的程序

如何编写 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;
}
C Program to Count Total Duplicate Elements in an Array 1

在此程序中,我们声明了一个大小为 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