c语言(去重)输入10个整数赋给一个整数序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。
时间: 2024-03-10 16:48:58 浏览: 31
好的,这是一个关于C语言去重的问题,我可以为您提供代码实现。以下是基于数组实现去重的示例代码:
```c
#include <stdio.h>
#define MAX_LEN 10
int main() {
int nums[MAX_LEN];
int len = 0;
int i, j, k;
int isDuplicate;
// 读入数字序列
printf("请输入%d个整数:\n", MAX_LEN);
for (i = 0; i < MAX_LEN; i++) {
scanf("%d", &nums[i]);
len++;
}
// 去重
for (i = 0; i < len; i++) {
isDuplicate = 0;
for (j = 0; j < i; j++) {
if (nums[j] == nums[i]) {
isDuplicate = 1;
break;
}
}
if (!isDuplicate) {
for (k = i + 1; k < len; k++) {
if (nums[k] == nums[i]) {
nums[k] = nums[len - 1];
len--;
k--;
}
}
}
}
// 输出去重后的序列
printf("去重后的数字序列为:\n");
for (i = 0; i < len; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
该程序通过使用三重循环,第一重循环遍历整个序列,第二重循环用于查找是否存在重复元素,第三重循环用于删除重复元素。程序中使用一个长度变量`len`来记录去重后的数字序列长度,每次发现重复元素时,就将该元素后面的所有元素依次向前移动一个位置,并将序列长度减1。