1 条题解

  • 0
    @ 2026-2-16 22:38:54
    #include<bits/stdc++.h>
    using namespace std;
    
    // [5] 自定义排序比较函数,供sort函数调用,实现降序排序逻辑
    bool cmp(int x , int y)
    {
    	return x > y; // 前值大于后值时返回true,实现从大到小的降序排列
    }
    
    // [1] 程序主入口,核心排序逻辑的执行主体
    int main()
    {
        // [2] 定义vector容器:odd存储奇数序列,even存储偶数序列,实现奇偶分组
        vector<int>  odd;
        vector<int>  even;
        
        // [3] 循环读取10个输入整数,按奇偶性分别存入对应容器
        for(int i = 1 ; i <= 10 ; i++)
        {
        	int num; // 临时存储当前读取的输入整数
        	cin >> num;
        	if(num  & 1) // 位运算判断是否为奇数(等价于num%2==1,执行效率更高)
                odd.push_back( num ); // 奇数存入odd容器
        	else 
                even.push_back( num ); // 偶数存入even容器
    	}
    	
        // [4] 对奇数序列执行排序,调用自定义cmp函数实现从大到小的降序要求
    	sort( odd.begin() , odd.end() ,  cmp );
    	
        // [6] 遍历输出排序后的奇数序列,满足奇数在前的排序规则
    	for(int i = 0 ; i < odd.size() ; i++)
        	cout << odd[i] << " ";
        	
        // [7] 逆序遍历偶数容器,实现偶数按输入顺序逆序输出的要求
    	for(int i = even.size() - 1 ; i >= 0 ; i--)
        	cout << even[i] << " ";	 
    	return 0;
    }
    
    • 1

    信息

    ID
    1163
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    1
    已通过
    1
    上传者