C语言编写代码实现在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。 你要写一个程序来做这件事情,读入数据,检查是否有重复的数据。如果有,输出“YES”这三个字母;如果没有,则输出“NO”。 输入格式: 你的程序首先会读到一个正整数n,n∈[1,100000],然后是n个整数。 输出格式: 如果这些整数中存在重复的,就输出: YES 否则,就输出: NO
时间: 2023-11-27 18:55:25 浏览: 85
以下是使用C语言编写的程序实现:
```c
#include <stdio.h>
#define MAXN 100000 // 最大整数数量
int arr[MAXN]; // 存储输入的整数
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
// 判断是否有重复的整数
int flag = 0; // 标记是否有重复
for (int i = 0; i < n - 1; i++) {
if (arr[i] == arr[i+1]) {
flag = 1;
break;
}
}
if (flag) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
首先,我们定义了一个常量`MAXN`,表示输入的最大整数数量。然后,定义了一个整型数组`arr`,用于存储输入的整数。
程序首先读入一个正整数`n`,然后在循环中依次读入`n`个整数,存储在数组`arr`中。
接下来,我们使用冒泡排序算法对`arr`数组进行排序,这样可以方便我们判断是否存在重复的整数。冒泡排序的原理是依次比较相邻两个元素的大小,并交换位置,使得较小的元素逐渐“冒泡”到数组的前面,较大的元素逐渐“沉底”到数组的后面。
排序完成后,我们遍历数组`arr`,判断是否有相邻两个元素相等的情况,如果有,就将标记`flag`设置为1,并跳出循环。
最后,根据标记`flag`的值,输出对应的结果,即是否存在重复的数据。
阅读全文