bool cmp(int a,int b){return a>b;}
下面 下麪是具體使用sort()函數排序的題目。
整數奇偶數排序
描述
給定10個整數的序列,要求對其重新排序。排序要求:1.奇數在前,偶數在後;2.奇數按從大到小排序;3.偶數按從小到大排序。
輸入
輸入一行,包含10個整數,彼此以一個空格分開,每個整數的範圍是大於等於0,小於等於100。
輸出
按照要求排序後輸出一行,包含排序後的10個整數,數與數之間以一個空格分開。
輸入樣例 1
4 7 3 13 11 12 0 47 34 98
輸出樣例 1
47 13 11 7 3 0 4 12 34 98
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b){return a>b;}
int main(){
int i,a[10],b[5],c[5],j=0,k=0;
for(i=0;i<10;i++)cin>>a[i];
for(i=0;i<10;i++){
if(a[i]%2==1){
b[j++]=a[i];
sort(b,b+j,cmp);
}
else{
c[k++]=a[i];
sort(c,c+k);
}
}
for(i=0;i<j;i++)cout<<b[i]<<" ";
for(i=0;i<k;i++)cout<<c[i]<<" ";
return 0;
}