1. 程式人生 > >計算機考研複試真題 整數奇偶排序

計算機考研複試真題 整數奇偶排序

 

題目描述

輸入10個整數,彼此以空格分隔。重新排序以後輸出(也按空格分隔),要求: 1.先輸出其中的奇數,並按從大到小排列; 2.然後輸出其中的偶數,並按從小到大排列。

輸入描述:

任意排序的10個整數(0~100),彼此以空格分隔。

輸出描述:

可能有多組測試資料,對於每組資料,按照要求排序後輸出,由空格分隔。

1. 測試資料可能有很多組,請使用while(cin>>a[0]>>a[1]>>...>>a[9])類似的做法來實現;
2. 輸入資料隨機,有可能相等。
示例1

輸入

4 7 3 13 11 12 0 47 34 98

輸出

47 13 11 7 3 0 4 12 34 98

 

 


 

 

 

//計算機考研複試真題 整數奇偶排序
/*
程式設計思想:
1.輸入用例。首先把奇數加到向量v1中,然後進行降序排序。
2.然後把偶數加到向量v2中,然後進行升序排序。
3.最後分別輸出兩個向量。
*/
//程式實現:
#include<iostream>
#include
<algorithm> #include<vector> using namespace std; bool cmp(int x, int y)//降序 { return x>y ? true : false; } int main() { int num; vector<int> a(10); while(cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4]>>a[5]>>a[6]>>a[7
]>>a[8]>>a[9]){ vector<int>v1, v2; for (int i = 0; i<10; ++i) { if (a[i] % 2 != 0) v1.push_back(a[i]); else v2.push_back(a[i]); } sort(v1.begin(), v1.end(), cmp); //降序 sort(v2.begin(), v2.end()); //升序 for (int j = 0; j<v1.size(); ++j) cout << v1[j] << " "; for (int k = 0; k<v1.size(); ++k) cout << v2[k] << " "; } return 0; }