1 条题解

  • 0
    @ 2025-7-11 18:00:48

    最难解法:

    using namespace std; // 使用标准命名空间(暂时理解成“固定开头”)
    
    const int n = 3;    // 定义常量n=10,表示我们要排序10个数字
    int a[n + 1];        // 定义数组a,有11个位置(0-10),但我们只用1-10来存数字
    
    int main() {         // 主函数,程序从这里开始运行
        // 第一步:输入10个数字
      
        for (int i = 1; i <= n; ++i) {  // 循环10次(i从1到10)
            cin >> a[i];  // 把输入的数字存到数组a的第i个位置(像给桶编号1-10放数字)
        }
    
        // 第二步:冒泡排序(核心部分)
        for (int i = 1; i <= n - 1; ++i) {       // 外层循环:控制排序轮数(总共n-1轮)
            for (int j = 1; j <= n - i; ++j) {    // 内层循环:每轮比较相邻的两个数字
                if (a[j] < a[j + 1]) {            // 如果左边的数字比右边小
                    swap(a[j], a[j + 1]);         // 就交换它们(让大的数字往右“冒泡”)
                }
            }
            // 每一轮结束后,当前最大的数字会“沉”到最右边(像泡泡浮到水面)
        }
    
        // 第三步:输出排序后的结果
      
        for (int i = 1; i <= n; ++i) {  // 循环打印数组a的1-10号位置
            cout << a[i] << " ";        // 输出数字,用空格隔开
        }
        cout << endl;  // 最后换行(像写完一行字后按回车)
    
        return 0;  // 程序结束,告诉电脑“一切正常”
    }
    
    
    

    算法

    • 1

    信息

    ID
    12
    时间
    1000ms
    内存
    64MiB
    难度
    6
    标签
    递交数
    22
    已通过
    10
    上传者