c语言输入一串含有重复数据的乱序整数,能够删除重复数据
时间: 2024-10-16 13:21:49 浏览: 17
在 C 语言中,要处理一串包含重复数据的乱序整数并删除重复项,你可以使用哈希表(如数组或链表结构)来记录已遇到的数字。这里是一个简单的示例,展示了如何使用数组作为临时存储,并遍历一次输入列表:
```c
#include <stdio.h>
#define MAX_INTS 100 // 假设我们处理的最大整数数量
int input[MAX_INTS]; // 输入数组
int count = 0; // 已经遇到的不同元素计数
void removeDuplicates(int* arr, int* n) {
for (int i = 0; i < *n; ++i) { // 遍历所有元素
int value = arr[i];
if (count == 0 || value != input[count - 1]) { // 如果是第一个元素或者新值
input[count++] = value; // 将其添加到结果数组
}
}
*n = count; // 更新实际元素的数量
}
int main() {
int num;
printf("请输入整数,直到输入0为止:\n");
while (scanf("%d", &num) == 1 && num != 0) {
input[count++] = num; // 存储每个输入
}
removeDuplicates(input, &count); // 删除重复
printf("去重后的有序整数是:\n");
for (int i = 0; i < count; ++i) {
printf("%d ", input[i]);
}
printf("\n");
return 0;
}
```
在这个程序中,用户逐个输入整数,当遇到重复数值时,不会将其添加到结果数组中。最后输出的是无重复的整数序列。
阅读全文