c代码设计找出数组中所有不重复的数字
时间: 2023-03-23 11:04:59 浏览: 117
你好,我可以回答这个问题。要找出数组中所有不重复的数字,可以使用哈希表来实现。具体步骤如下:
1. 定义一个哈希表,用来存储数组中出现过的数字及其出现次数。
2. 遍历数组,将每个数字作为键值存入哈希表中,如果该数字已经存在于哈希表中,则将其对应的值加1。
3. 再次遍历数组,对于每个数字,查找其在哈希表中对应的值,如果为1,则说明该数字不重复,将其输出即可。
代码实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
void findUnique(int arr[], int n) {
int hash[MAX_SIZE] = {}; // 定义哈希表
int i;
// 遍历数组,统计每个数字出现的次数
for (i = ; i < n; i++) {
hash[arr[i]]++;
}
// 再次遍历数组,输出不重复的数字
for (i = ; i < n; i++) {
if (hash[arr[i]] == 1) {
printf("%d ", arr[i]);
}
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int n = sizeof(arr) / sizeof(arr[]);
findUnique(arr, n);
return ;
}
```
输出结果为:10