C语言输入N个无序的数,请将相同的数删成只剩下一个,并将删除后的数列从小到大排序后输出。(如输入:8 32 12 25 12 8 36 25 26 12 ,输出:8 12 25 26 32 36) 输入格式 二行,第一行整数N(小于1000),表示有N个整数; 第二行,N个无序的整数(小于32767)。 输出格式 排序后并删除相同整数输出。 输入样例 10 8 32 12 25 12 8 36 25 26 12 输出样例 8 12 25 26 32 36
时间: 2024-03-12 22:46:09 浏览: 121
好的,这是一个去重排序的问题。以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int n; // 数组长度
int nums[1000];
int unique[1000]; // 存储去重后的数列
int len = 0; // 去重后的数列长度
// 输入数组
scanf("%d", &n);
for (int i=0; i<n; i++) {
scanf("%d", &nums[i]);
}
// 去重
for (int i=0; i<n; i++) {
int is_duplicate = 0;
for (int j=0; j<len; j++) {
if (nums[i] == unique[j]) {
is_duplicate = 1;
break;
}
}
if (!is_duplicate) {
unique[len] = nums[i];
len++;
}
}
// 排序
for (int i=0; i<len-1; i++) {
for (int j=0; j<len-1-i; j++) {
if (unique[j] > unique[j+1]) {
int temp = unique[j];
unique[j] = unique[j+1];
unique[j+1] = temp;
}
}
}
// 输出去重排序后的数列
for (int i=0; i<len; i++) {
printf("%d ", unique[i]);
}
return 0;
}
```
输入样例:
```
10
8 32 12 25 12 8 36 25 26 12
```
输出样例:
```
8 12 25 26 32 36
```
阅读全文