合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
习题7-1 选择法排序
本题要求将给定的n个整数从大到小排序后输出。
输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4
5 1 7 6
输出样例:
7 6 5 1
二、代码(C语言)⭐️
#include <stdio.h> // 包含标准输入输出库,用于使用输入输出函数
int main() {
int n; // 定义变量 n,用于存储数组的长度
scanf("%d", &n); // 输入数组的长度 n
int numArr[n]; // 定义一个长度为 n 的整型数组 numArr
for (int i = 0; i < n; i++) { // 循环 n 次,读取数组的每个元素
scanf("%d", &numArr[i]); // 输入数组的第 i 个元素
}
// 使用选择排序算法对数组进行降序排序
for (int i = 0; i < n; i++) { // 外层循环,遍历数组的每个元素
for (int j = i + 1; j < n; j++) { // 内层循环,从 i+1 开始遍历剩余元素
if (numArr[i] < numArr[j]) { // 如果当前元素小于后面的元素
int temp = numArr[j]; // 交换两个元素的值
numArr[j] = numArr[i];
numArr[i] = temp;
}
}
}
// 输出排序后的数组
for (int i = 0; i < n; i++) { // 循环 n 次,遍历数组的每个元素
if (i == 0) { // 如果是第一个元素
printf("%d", numArr[i]); // 直接输出,前面不加空格
} else { // 如果不是第一个元素
printf(" %d", numArr[i]); // 输出空格和当前元素
}
}
return 0; // 程序正常结束
}