2025-03-23 学习记录--C/C++-PTA 习题7-1 选择法排序

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

习题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;  // 程序正常结束
}

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小呀小萝卜儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值