用c语言编写题:具有n个元素的整型数组a中存在重复数据,编写函数int set(int a[ ],int n),删除数组中所有的重复元素,使数组变成一个合集,函数返回集合中元素的个数。
时间: 2024-02-24 15:55:10 浏览: 123
数组重复元素去除
以下是用C语言编写的删除重复元素的函数:
```c
int set(int a[], int n) {
int count = n;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (a[i] == a[j]) {
count--;
for (int k = j; k < n - 1; k++) {
a[k] = a[k + 1];
}
j--;
}
}
}
return count;
}
```
该函数接受一个包含n个元素的整型数组a以及数组长度n,返回删除重复元素后集合中元素的个数。
函数使用两个循环嵌套来遍历数组中的所有元素。对于每个元素,它都会检查数组中是否存在与它相同的元素。如果存在,则将计数器减1,并将数组中的重复元素删除。删除元素时,将找到的重复元素之后的所有元素向前移动一个位置,以覆盖重复元素。
最终,函数将返回集合中元素的数量。
阅读全文