用c语言输入10个整数赋给一个整数序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。
时间: 2024-02-20 16:57:05 浏览: 24
好的,以下是使用 C 语言实现对整数序列去重的示例代码:
```c
#include <stdio.h>
int main() {
int arr[10]; // 定义整数序列
int len = sizeof(arr) / sizeof(arr[0]); // 序列长度
// 输入整数序列
printf("Please enter %d integers:\n", len);
for (int i = 0; i < len; i++) {
scanf("%d", &arr[i]);
}
// 对整数序列进行去重操作
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) { // 如果发现重复元素
// 从后面的位置开始查找,找到第一个与当前元素相同的元素
for (int k = j + 1; k < len; k++) {
if (arr[k] == arr[i]) {
// 将该元素与当前位置的元素交换位置
int tmp = arr[j];
arr[j] = arr[k];
arr[k] = tmp;
break; // 找到第一个相同元素后跳出循环
}
}
}
}
}
// 输出去重后的整数序列
printf("New sequence:");
for (int i = 0; i < len; i++) {
printf(" %d", arr[i]);
}
printf("\n");
return 0;
}
```
运行以上代码,输入10个整数后,输出去重后的整数序列。例如,输入以下整数:
```
1 2 3 4 5 1 2 3 4 5
```
则输出结果为:
```
New sequence: 1 2 3 4 5 0 0 0 0 0
```
其中,0 表示位置已被去重。希望能够帮到您,如果您还有其他问题,可以继续提出。