1181:整数奇偶排序
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
给定10个整数的序列,要求对其重新排序。排序要求:
1.奇数在前,偶数在后;
2.奇数按从大到小排序;
3.偶数按从小到大排序。
【输入】
输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。
【输出】
按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。
【输入样例】
4 7 3 13 11 12 0 47 34 98
【输出样例】
47 13 11 7 3 0 4 12 34 98
【来源】
No
1. #include <iostream> 2. using namespace std; 3. void swap(int &a,int &b){ 4. int t=a;a=b;b=t; 5. } 6. bool cmp(int a,int b){ 7. if(a%2==1 && b%2==0)return false; 8. if(a%2==0 && b%2==1)return true; 9. if(a%2==1 && b%2==1)return a<b; //降序 10. if(a%2==0 && b%2==0)return a>b; 11. } 12. int main(int argc, char *argv[]) 13. { 14. int n, a[10]; 15. n=10; 16. for(int i=0;i<n;i++) 17. cin>>a[i]; 18. for(int i=0;i<n-1;i++) 19. for(int j=i+1;j<n;j++) 20. if(cmp(a[i],a[j])) swap(a[i],a[j]); 21. for(int i=0;i<n;i++) 22. cout<<a[i]<<" "; 23. cout<<endl; 24. return 0; 25. }