题目://给定一个整数数组,判断是否存在重复元素。
//如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
我的思路:排序之后,判断前后有没有相等的元素即可
#include<stdio.h>
#include <time.h>
#include <cstdlib>
#include <string.h>
#include<vector>
#include<string>
#define size_of 5
bool repeat;
int main()
{
int a[size_of] = { 0 };
printf("请输入5个数: \n");
for (int i = 0; i < size_of; i++)
{
scanf_s("%d", &a[i]);
}
//排列(插入法,从小到大排序)
for (int i = 1; i < size_of; i++)
{
int t = a[i];
int j = i - 1;
while (j >= 0 && a[j] > t)
{
a[j + 1] = a[j];
a[j] = t;
j--;
}
}
for (int i = 1; i < size_of; i++)
{
if (a[i] == a[i - 1])
{
repeat = true;
break;
}
}
if (repeat == true)
{
printf("true\n");
}
else
{
printf("false\n");
}
return 0;
}
答案的思路: