解题思路:
        代码非常简单   

        由于输入个数不确定,考虑使用动态分配的STL list 即 链表,两个链表,一个存奇数一个存偶数,分别排序再输出即可
注意事项:
        list.sort()默认生序排列,需要再写一个bool cmp(Elem a, Elem b)函数做降序
参考代码:

#include<bits/stdc++.h>
#define ll long long int
using namespace std;

template<typename Elem>
bool cmp(Elem a, Elem b)
{
    return a > b;
}

int main()
{
    int num;
    list<int> list_odd;             // 奇数链表
    list<int> list_even;            // 偶数链表 
    list<int>::iterator iter;       // 迭代器

    // 分开存放
    while (cin >> num) {
        if (num % 2) list_odd.push_back(num);
        else list_even.push_back(num);
    }

    list_odd.sort(cmp<int>);        // 奇数,降序
    list_even.sort();               // 偶数,升序

    // 输出
    for (iter = list_odd.begin(); iter != list_odd.end(); ++iter) {
        cout << *iter << " ";
    }
    for (iter = list_even.begin(); iter != list_even.end(); ++iter) {
        cout << *iter << " ";
    }
    cout << endl;

    return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论