【问题描述】4.1.5 输入一个正整数n(1 <n≤10),再输入n个整数,将它们从大到小排序后输出。(利用教材中介绍的选择、冒泡、插入排序中的一个算法完成排序操作) 【输入形式】 从键盘输入一个正整数n和n个整数。 【输入输出样例】用C语言
时间: 2024-10-28 09:06:28 浏览: 25
在这个问题中,你需要编写一个程序,使用选择排序、冒泡排序或插入排序等简单的算法来对给定的n个整数进行降序排列。以下是使用选择排序的一个示例,因为它相对简单:
```c
#include <stdio.h>
// 选择排序函数
void selectionSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
// 找到未排序部分的最大值
int maxIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] > arr[maxIndex]) {
maxIndex = j;
}
}
// 将找到的最大值与第一个位置交换
int temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
int main() {
int n;
printf("请输入一个正整数n(1 < n ≤ 10): ");
scanf("%d", &n);
// 确保n的范围
if (n < 2 || n > 10) {
printf("输入错误,n需要在1到10之间。\n");
return 1;
}
int arr[n];
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
selectionSort(arr, n);
printf("从大到小排序后的结果是:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文