输入正整数n再输入n个正整数并对这个n个整数按照降序排序
时间: 2024-02-25 19:55:49 浏览: 190
好的,这是一个经典的排序问题,可以使用冒泡排序、插入排序、选择排序等多种算法来解决。这里我给出一种简单的选择排序算法的代码实现,可以按照你的要求对n个整数进行降序排序:
```python
n = int(input("请输入整数个数:"))
nums = []
for i in range(n):
num = int(input("请输入第%d个整数:" % (i + 1)))
nums.append(num)
# 选择排序
for i in range(n - 1):
max_index = i
for j in range(i + 1, n):
if nums[j] > nums[max_index]:
max_index = j
if max_index != i:
nums[i], nums[max_index] = nums[max_index], nums[i]
print("降序排序后的结果为:", nums)
```
这段代码首先读入整数的个数n,然后用一个循环读入n个整数,将它们存储到一个列表nums中。接着使用选择排序算法对这n个整数进行排序,最后输出排序后的结果。
相关问题
c语言给出n件物品,每件物品有质量和价格两种属性。你要做的是按质量升序排序,若质量相同则按价格降序排序。 输入格式: 多组输入。每组先输入一个正整数n(1<=n && n <= 100),代表有n件物品。接下来的一行有n个正整数Wi(1<= Wi && Wi <= 10000),代表每件物品的质量。再接下来的一行有n个正整数Pi(1 <= Pi && Pi <= 10000),代表每件物品的价格。 输出格式: 对于每组数据输出n行,每行两个数Wi,Pi。
这道题目可以使用结构体来存储每件物品的质量和价格,然后使用快速排序对其进行排序,排序规则就是按照质量升序排序,若质量相同则按照价格降序排序。具体实现可以参考下面的代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct item {
int quality;
int price;
};
int cmp(const void *a, const void *b) {
struct item *ia = (struct item *)a;
struct item *ib = (struct item *)b;
if (ia->quality != ib->quality) {
return ia->quality - ib->quality;
} else {
return ib->price - ia->price;
}
}
int main() {
int n;
while (scanf("%d", &n) == 1) {
struct item items[n];
for (int i = 0; i < n; i++) {
scanf("%d", &items[i].quality);
}
for (int i = 0; i < n; i++) {
scanf("%d", &items[i].price);
}
qsort(items, n, sizeof(struct item), cmp);
for (int i = 0; i < n; i++) {
printf("%d %d\n", items[i].quality, items[i].price);
}
}
return 0;
}
```
这里的cmp函数是快速排序的比较函数,它根据质量升序排序,若质量相同则按照价格降序排序。注意,这里使用了qsort函数进行快速排序,需要包含stdlib.h头文件。
【问题描述】4.1.5 输入一个正整数n(1 <n≤10),再输入n个整数,将它们从大到小排序后输出。(利用教材中介绍的选择、冒泡、插入排序中的一个算法完成排序操作) 【输入形式】 从键盘输入一个正整数n和n个整数。 【输入输出样例】
这是一个编程题目,要求你使用选择排序、冒泡排序或插入排序中的任一算法对给定的一组正整数进行降序排列。以下是使用Python的一个简单示例,这里我们选择使用插入排序来实现:
```python
def insertion_sort_descending(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key > arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
# 获取用户输入
n = int(input("请输入一个正整数n: "))
numbers = list(map(int, input(f"请输入{n}个整数, 用空格分隔: ").split()))
# 插入排序并降序排列
insertion_sort_descending(numbers)
print("排序后的数字 (从大到小): ", numbers)
阅读全文