输入N个无序的数,请将相同的数删成只剩下一个,并将删除后的数列从小到大排序后输出。(如输入:8 32 12 25 12 8 36 25 26 12 ,输出:8 12 25 26 32 36)输入要求二行,第一行整数N(小于1000),表示有N个整数; 第二行,N个无序的整数(小于32767)输出格式要求排序后并删除相同整数输出。
时间: 2024-03-07 14:46:43 浏览: 65
好的,这是一个简单的排序去重问题,我可以为您提供代码实现。请看以下代码:
```python
n = int(input()) # 输入整数个数
nums = list(map(int, input().split())) # 输入无序的整数数组
nums = list(set(nums)) # 利用set()函数对数组去重
nums.sort() # 对数组从小到大排序
for num in nums:
print(num, end=" ") # 逐个输出排序后的数字
```
如果您输入的数字是:8 32 12 25 12 8 36 25 26 12,那么程序将会输出:8 12 25 26 32 36。
希望我的回答能够帮助到您!
相关问题
输入N个无序的数,请将相同的数删成只剩下一个,并将删除后的数列从小到大排序后输出。(如输入:8 32 12 25 12 8 36 25 26 12 ,输出:8 12 25 26 32 36)
好的,这个问题可以用哈希表来解决。具体步骤如下:
1. 首先,遍历输入的数列,将每个数作为哈希表的键,值设为1(或任意非0值),加入哈希表中。
2. 遍历完后,将哈希表的所有键按从小到大的顺序取出,组成新的数列。
这样,就能得到删除重复数后的有序数列。下面是具体的代码实现:
```python
def remove_duplicates(nums):
hash_table = {}
for num in nums:
hash_table[num] = 1
sorted_nums = sorted(hash_table.keys())
return sorted_nums
```
示例输入:`[8, 32, 12, 25, 12, 8, 36, 25, 26, 12]`,输出:`[8, 12, 25, 26, 32, 36]`。
需要注意的是,哈希表的实现方式可以选择字典、集合等。此外,排序算法的选择也可以根据具体情况来确定,此处使用了Python内置的sorted函数。
c语言输入N个无序的数,请将相同的数删成只剩下一个,并将删除后的数列从小到大排序后输出。(如输入:8 32 12 25 12 8 36 25 26 12 ,输出:8 12 25 26 32 36)
好的,这个问题可以使用C语言来实现。以下是解题思路:
1. 首先读入N个数,使用数组存储这N个数。
2. 定义一个新的数组,用于存储删除后的数列。
3. 遍历原始数列,将每个数与新数组中的数进行比较,如果相同则不加入新数组,否则加入新数组。
4. 对新数组进行排序,从小到大输出。
下面是实现代码:
```c
#include <stdio.h>
#define MAX 100
int main()
{
int num[MAX], new_num[MAX];
int n, i, j, k, flag;
printf("请输入N个数(以空格分隔):\n");
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
k = 0;
for (i = 0; i < n; i++) {
flag = 0;
for (j = 0; j < k; j++) {
if (num[i] == new_num[j]) {
flag = 1;
break;
}
}
if (!flag) {
new_num[k++] = num[i];
}
}
// 冒泡排序
for (i = 0; i < k - 1; i++) {
for (j = 0; j < k - i - 1; j++) {
if (new_num[j] > new_num[j + 1]) {
int temp = new_num[j];
new_num[j] = new_num[j + 1];
new_num[j + 1] = temp;
}
}
}
printf("删除后的数列为:\n");
for (i = 0; i < k; i++) {
printf("%d ", new_num[i]);
}
printf("\n");
return 0;
}
```
希望这个解答能够帮助你!
阅读全文