c语言编写一个程序,输入10个含重复数据整数,去掉重复的数据并按原顺序输出。
时间: 2023-05-24 16:05:46 浏览: 82
以下是一种可能的实现方式:
```c
#include <stdio.h>
int main() {
int nums[10]; // 存放输入的整数
int uniqueNums[10]; // 存放去重后的整数
int uniqueCount = 0; // 去重后的整数个数
// 输入10个整数
printf("Please input 10 integers:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &nums[i]);
}
// 去重
for (int i = 0; i < 10; i++) {
int isDuplicate = 0; // 标记当前整数是否与之前的整数重复
for (int j = 0; j < i; j++) {
if (nums[i] == nums[j]) {
isDuplicate = 1;
break;
}
}
if (!isDuplicate) {
uniqueNums[uniqueCount] = nums[i];
uniqueCount++;
}
}
// 输出去重后的整数
printf("The unique integers are: ");
for (int i = 0; i < uniqueCount; i++) {
printf("%d ", uniqueNums[i]);
}
return 0;
}
```
解释:
1. 首先定义了三个数组:`nums` 用于存放输入的整数,`uniqueNums` 用于存放去重后的整数,`uniqueCount` 表示去重后的整数个数,初始化为 0。
2. 对于输入的每个整数,都遍历一遍已经输入的整数,判断是否与之前的整数重复。为了方便,这里采用了两重循环,时间复杂度为 O(n^2)。如果发现当前整数与之前的某个整数重复,则标记为 `isDuplicate`,跳出循环;如果没有重复,则将该整数存入 `uniqueNums` 数组中,并更新 `uniqueCount`。
3. 最后遍历一遍 `uniqueNums` 数组,输出所有去重后的整数。
注意,上面的实现方式没有考虑输入的整数数量少于 10 个的情况,也没有对输入的数据格式做有效性检查。在实际开发中需要根据需求进行修改。