zoukankan      html  css  js  c++  java
  • 【C语言简单排序】—— 整数奇偶排序

    7-1 整数奇偶排序 

      给定10个整数的序列,要求对其重新排序。

      排序要求:

      1.奇数在前,偶数在后;

      2.奇数按从大到小排序;

      3.偶数按从小到大排序。

    输入格式:

      输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。

    输出格式:

      请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。

    输入样例:

      按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。

      4 7 3 13 11 12 0 47 34 98

    输出样例:

      在这里给出相应的输出。例如:

      47 13 11 7 3 0 4 12 34 98 

    思路:

      这里分析题目,发现有三种情况下需要进行排序:
      1.a[j]为奇数,a[j+1]为偶数
      2.a[j]为奇数,a[j+1]为奇数且a[j] < a[j+1]
      3.a[j]为偶数,a[j+1]为偶数且a[j] > a[j+1]

    代码:

    #include<stdio.h>
    int main()
    {
        int n = 10,i,j,tmp;
        int a[10];
        for(i = 0; i < n; i++)
        {
            scanf("%d",&a[i]);
        }
        for(i = 0; i < n-1; i++)
        {
            for(j = 0; j < n-1; j++)
            {
                if(a[j] % 2 == 0 && a[j+1] % 2 != 0 || a[j] % 2 != 0 && a[j+1] % 2 != 0 && a[j] < a[j+1] || a[j] % 2 == 0 && a[j+1] % 2 ==0 && a[j] > a[j+1])
                {
                    tmp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = tmp;
                }
            }
        }
        for(i = 0; i < n; i++)
        {
                printf("%d ",a[i]);
        }
        return 0;
    }












  • 相关阅读:
    CodeForces 660D Number of Parallelograms
    【POJ 1082】 Calendar Game
    【POJ 2352】 Stars
    【POJ 2481】 Cows
    【POJ 1733】 Parity Game
    【NOI 2002】 银河英雄传说
    【NOI 2015】 程序自动分析
    【POJ 1704】 Georgia and Bob
    【HDU 2176】 取(m堆)石子游戏
    【SDOI 2016】 排列计数
  • 原文地址:https://www.cnblogs.com/CoffeeSoul/p/13823894.html
Copyright © 2011-2022 走看看