zoukankan      html  css  js  c++  java
  • 排序

    输入50个正整数,将其中的偶数按升序排列,奇数按降序排列。若偶数个数多于奇数个数,则偶数放在数组的前边,奇数放在其后;否则奇数放在前,偶数在后;输出排序后的结果。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    
    /**
    * 奇数在前,从大到小;偶数在后,从小到大 
    */ 
    using namespace std;
    
    bool Compare1(int x,int y){
        //如果两个都是奇数
        if(x % 2 == 1 && y % 2 == 1){
            //从大到小 
            return x > y;
        }else if(x % 2 == 0 && y % 2 == 0){
            return x < y;
        }else if(x % 2 == 0 && y % 2 == 1){
            return true;
        }else{
            //偶数在前 
            return false;
        }
    }
    
    bool Compare2(int x,int y){
        //如果两个都是奇数
        if(x % 2 == 1 && y % 2 == 1){
            //从大到小 
            return x > y;
        }else if(x % 2 == 0 && y % 2 == 0){
            return x < y;
        }else if(x % 2 == 0 && y % 2 == 1){
            return false;
        }else{
            return true;
        }
    }
    int arr[10];
    
    
    int main(){
        int n;
        int even = 0; //偶数个数 
        int odd = 0;  //奇数个数 
         
        while(scanf("%d",&n)!=EOF){
            
            for(int i = 0;i < n;i++){
                scanf("%d",&arr[i]);
                if(i % 2){
                    ++odd;
                }else{
                    ++even;
                } 
            }
            
            if(odd > even){
                //奇数个数多 ,奇数在前 
                sort(arr,arr+n,Compare1);
            }else{
                sort(arr,arr+n,Compare2);
            }
        
            for(int i = 0;i < n;i++){
                printf("%d ",arr[i]);
            }        
        }
        return 0;
    }
  • 相关阅读:
    TCP首部
    IP
    ARP
    QYT教主TCPIP2017 TCP部分 视频笔记
    卷一第二十二章:UDP原理
    卷一第二十一章:TCP原理
    卷一第二十章:IPV6基础
    卷一十九章:DHCP (不涉及工作,暂停)
    目录
    Educational Codeforces Round 90 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12901203.html
Copyright © 2011-2022 走看看