键盘输入长度为10的数组,统计其中有多少不相同的数据c语言代码
时间: 2024-12-23 12:18:36 浏览: 2
在C语言中,你可以使用哈希表(如`unordered_set`)或者标准库函数来统计一个包含10个元素的数组中有多少个唯一的数据。以下是使用`unordered_set`的一个简单示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <unordered_set>
bool compare(const void* a, const void* b) {
return (*(int*)a) < (*(int*)b);
}
int count_unique(int arr[], int size) {
if (size <= 0) {
return 0;
}
// 使用无序集合存储唯一值,并计算大小
std::unordered_set<int> unique_set;
for (int i = 0; i < size; i++) {
unique_set.insert(arr[i]);
}
return unique_set.size();
}
int main() {
int arr[10];
// 假设用户已经填充了数组arr...
printf("数组中不相同的数值有 %d 个。\n", count_unique(arr, 10));
return 0;
}
```
在这个代码中,我们首先创建了一个`unordered_set`,然后遍历输入数组将每个元素插入到集合中。由于`unordered_set`内部会自动处理重复元素,所以最后集合的大小就是唯一值的数量。
注意:这个程序假设数组已经被初始化并填充了数据。在实际应用中,你需要获取用户的键盘输入并将其转换为整数数组。
阅读全文