zoukankan      html  css  js  c++  java
  • 奇偶排序

    输入若干非负整数数字,请先取出奇数数字按从大到小排序,再取出偶数数字,从小到大排序。

    样例输入:12 34 5 7 92 3 8

    样例输出: 7 5 3 8 12 34 92

    不同语言的解法

    1,使用C语言来解决

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    // little -> big
    int comp1(const void *a, const void *b){
    	return *(int *)a - *(int *)b;
    }
    // big -> little
    int comp2(const void *a, const void *b){
    	return *(int *)b - *(int *)a;
    }
    int main(){
    	int odd[1000] = {0};
    	int even[1000] = {1};
    
    	int input = 0;
    
    	int odd_idx = 0;
    	int even_idx = 0;
    
    	int i = 0;
    	char a;
    
    	do{	
    		scanf("%d",&input);
    		if(input % 2){
    			odd[odd_idx] = input;
    			odd_idx++;
    		}else{
    			even[even_idx] = input;
    			even_idx++;
    		}
    		a = getchar();
    		if(a == '
    ')
    			break;
    	}while(1);
    
    	qsort(odd, odd_idx, sizeof(int), comp2);
    	qsort(even, even_idx, sizeof(int), comp1);
    
    	for(i=0; i<odd_idx; i++){
    		printf("%d ",odd[i]);
    	}
    
    	for(i=0; i<even_idx; i++){
    		printf("%d ", even[i]);
    	}
    
    	return 0;
    }
    

     2, 使用C++来完成

    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    int main(){
    	int input;
    	int odd[1000] = {1};
    	int even[1000] = {0};
    	
    	int odd_idx = 0;
    	int even_idx = 0;
    	
    	int i = 0;
    	
    	while(cin>>input, cin.get() != '
    '){
    		if(input % 2){
    			odd[odd_idx++] = input;
    		}else{
    			even[even_idx++] = input;
    		}
    		if(input == '
    '){
    			break;
    		}
    	}
    	
    	sort(odd, odd + odd_idx);
    	sort(even, even + even_idx);
    	
    	for(i=0; i<odd_idx; i++){
    		cout<<odd[i]<<" ";
    	}
    	for(i=0; i<even_idx; i++){
    		cout<<even[i]<<" ";
    	}
    
    	return 0;
    }
    

     使用Python来完成

    import sys
    line = sys.stdin.readline()
    num = [int(x) for x in line.split(' ') if line.strip()]
    odd = [ x for x in num if x%2 == 1]
    even = [x for x in num if x%2 == 0]
    odd.sort(reverse=True)
    even.sort()
    print(odd,even)
    
  • 相关阅读:
    c# webapi无法获取Session值问题解决
    深入理解java虚拟机之自动内存管理机制笔记
    数据结构总结1
    疯人院之语言、编码、计算机

    集线器/交换机
    什么是DOM?DOM和JavaScript的关系 [web开发]
    JSON轻量级的数据交换格式
    天问宇宙学第一课
    C++基础知识
  • 原文地址:https://www.cnblogs.com/fangying7/p/4613385.html
Copyright © 2011-2022 走看看