介绍
在本实验中,我们将学习如何使用 C++ 编程语言判断给定的数组是否包含重复元素。我们将通过排序数组,然后比较相邻元素是否相等来实现这一目标。
在本实验中,我们将学习如何使用 C++ 编程语言判断给定的数组是否包含重复元素。我们将通过排序数组,然后比较相邻元素是否相等来实现这一目标。
按照以下内容编写库函数和主函数。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
bool containsDuplicate(int n[], int m)
{
// 创建一个标志位来指示是否存在重复元素
int f = 0;
// 对输入数组进行排序以检查重复元素
sort(n, n + m);
for (int i = 0; i < m - 1; i++)
{
if (n[i] == n[i + 1])
{
// 如果发现重复元素,将标志位设置为 1 并退出循环
f = 1;
break;
}
}
if (f == 1) {
// 发现重复元素
return true;
}
else {
// 未发现重复元素
return false;
}
}
int main()
{
cout << "\n\nWelcome to LabEx :-)\n\n\n";
cout << " ===== 检查输入数组中是否存在重复元素的程序 ===== \n\n";
int i, n1, n2;
int a1[] = {2, 3, 1, 4, 5, 2, 8, 9};
int a2[] = {2, 3, 1, 4, 5, 10, 8, 9};
bool duplicate1 = false;
bool duplicate2 = false;
// 获取两个输入数组的大小
n1 = sizeof(a1) / sizeof(a1[0]);
n2 = sizeof(a2) / sizeof(a2[0]);
// 打印第一个输入数组
cout << "\n\n第一个输入数组的元素为:\n\n";
for (i = 0; i < n1; i++)
{
cout << a1[i] << " ";
}
// 检查第一个输入数组是否包含重复元素
duplicate1 = containsDuplicate(a1, n1);
if (duplicate1) {
cout << "\n\n第一个输入数组包含重复元素";
}
else {
cout << "\n\n第一个输入数组不包含重复元素";
}
// 打印第二个输入数组
cout << "\n\n\n\n第二个输入数组的元素为:\n\n";
for (i = 0; i < n2; i++)
{
cout << a2[i] << " ";
}
// 检查第二个输入数组是否包含重复元素
duplicate2 = containsDuplicate(a2, n2);
if (duplicate2) {
cout << "\n\n第二个输入数组包含重复元素";
}
else {
cout << "\n\n第二个输入数组不包含重复元素";
}
cout << "\n\n\n";
return 0;
}
将代码保存到 ~/project/main.cpp
文件中,并使用以下命令编译代码:
g++ main.cpp -o main && ./main
为了检查数组中是否存在重复元素,我们首先创建了一个名为 containsDuplicate()
的函数。该函数接受两个参数——输入数组 n[]
和其大小 m
。
该函数通过标志位 1
表示发现重复元素,否则标志位为 0
。为了查找重复元素,首先使用系统定义的 sort()
函数对输入数组 n[]
进行排序。然后,比较排序后数组中的相邻元素,如果发现重复元素,则设置标志位。
在主函数中,创建了两个测试数组 a1
和 a2
,每个数组都可能包含重复元素。通过 containsDuplicate()
函数,我们检查每个数组是否存在重复元素,并输出结果。
if (duplicate1) {
cout << "\n\nThe first input array contains duplicate";
}
else {
cout << "\n\nThe first input array does not contain any duplicate";
}
此输出将指示输入数组是否包含重复元素。
使用 C++ 编程可以轻松判断数组中的重复元素。通过对输入数组进行排序并比较相邻元素,可以开发一个高效的标志系统来指示重复值。