输入N个无序的数,请将相同的数删成只剩下一个,并将删除后的数列从小到大排序后输出。(如输入:8 32 12 25 12 8 36 25 26 12 ,输出:8 12 25 26 32 36) 用c语言实现
时间: 2024-03-07 11:46:30 浏览: 104
将一个一维数组中相同的元素删除的只保留一个,然后按由大到小的顺序输出。
5星 · 资源好评率100%
好的,以下是用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUMBERS 1000
int main() {
int numbers[MAX_NUMBERS];
int size = 0;
// 读入数字
while (scanf("%d", &numbers[size]) != EOF) {
size++;
}
// 删去重复数字
for (int i = 0; i < size; i++) {
for (int j = i + 1; j < size; j++) {
if (numbers[i] == numbers[j]) {
for (int k = j; k < size - 1; k++) {
numbers[k] = numbers[k + 1];
}
size--;
j--;
}
}
}
// 从小到大排序
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size; j++) {
if (numbers[i] > numbers[j]) {
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
}
}
// 输出结果
for (int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
return 0;
}
```
这个程序先读入数字,然后删去重复数字,最后从小到大排序并输出结果。
阅读全文