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;
    }












  • 相关阅读:
    windows类型
    网络编程socket、udp
    mem族函数与str族函数(待填)
    位运算符的用处(待填)
    c51较c比较,单片机最小系统
    数据结构之 顺序栈的操作
    [置顶] 数据结构之 顺序栈的操作
    java中常用的帮助类。加快开发速度
    php实现安装程序的 安装
    php压缩文件帮助类
  • 原文地址:https://www.cnblogs.com/CoffeeSoul/p/13823894.html
Copyright © 2011-2022 走看看