文章

13

粉丝

171

获赞

8

访问

45.1k

头像
cmp函数的一个特性就是, 如果return false, 那么函数就会将他们互换位置, return true就会保持原来位置不变。
P1248 北京大学机试题
发布于2023年2月2日 13:30
阅读数 3.3k

#include <iostream>
#include <algorithm>

using namespace std;

bool cmp(int a, int b) {
    if (a % 2 == 1 && b % 2 == 1)//同为奇数
        return a > b;//从大到小
    if (a % 2 == 0 && b % 2 == 0)//同为偶数
        return a < b;//从小到大
    return a % 2 > b % 2;//一奇一偶,奇数在前,偶数在后
}

int main() {
    int arr[10];
    while (cin >> arr[0] >> arr[1] >> arr[2] >> arr[3] >> arr[4] >> arr[5] >> arr[6] >> arr[7] >> arr[8] >> arr[9]) {
        sort(arr, arr + 10, cmp);
        for (int i = 0; i < 10; i++)
            cout << arr[i] << ' ';
        cout << endl;
    }
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发