整数パリティソート(北京大学の再テスト)

序文:

21.再テストに参加できるかどうかに関係なく、道路に書かれたゴミコードを記録します。もともと「AlgorithmNotes」をかじったのですが、やりすぎたので、Kingway ComputerTestGuideに変更しました。

タイトル説明:

スペースで区切って10個の整数を入力します。並べ替え後の出力(スペースで区切る)、要件:1。最初に奇数を出力し、最大から最小に並べ替えます。2。次に、偶数を出力し、最小から最大に並べ替えます。

説明を入力してください

スペースで区切られた、任意の順序の10個の整数(0〜100)。

出力の説明:

複数のテストデータセットが存在する場合があります。データセットごとに、出力はスペースで区切られた要件に従って並べ替えられます。

  1. テストデータのグループは多数ある可能性があります。while(cin >> a [0] >> a [1] >> ... >> a [9])同様のアプローチを使用して達成してください。
  2. 入力データはランダムであり、等しい場合があります。

回答

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
#include<stdio.h>
using namespace std;

bool cmp(int a,int b) {
    
    
	if (a % 2 == 1 && b % 2 == 0)
		return 1;
	else if (a % 2 == 0 && b % 2 == 1)
		return 0;
	else if (a % 2 == 0 && b % 2 == 0)
		return a < b;
	else
		return a > b;
}

int main()
{
    
    	
	int a[10];
	while (scanf("%d%d%d%d%d%d%d%d%d%d", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &a[8], &a[9]) != EOF) {
    
    
		sort(a, a + 10, cmp);
		printf("%d %d %d %d %d %d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
	}
	return 0;
}

おすすめ

転載: blog.csdn.net/weixin_44897291/article/details/112783453