06:整数奇偶排序

简介: 06:整数奇偶排序

描述

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

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

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

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

输入

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

输出

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

样例输入

4 7 3 13 11 12 0 47 34 98

样例输出

47 13 11 7 3 0 4 12 34 98

源码

#include<stdio.h>
int main(){
    int a[10];
    int b[10];
    int c[10];
    int i,j,k;
    int sum1=0,sum2=0;
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0,j=0,k=0;i<10;i++){
        if(a[i]%2==1){
            b[j]=a[i];
            j++;
            sum1++;
        }
        else{
            c[k]=a[i];
            k++;
            sum2++;
        }
    }
    sort1(b,sum1);
    sort2(c,sum2);
    for(i=0;i<sum1;i++)
        printf("%d ",b[i]);
    for(i=0;i<sum2;i++)
        printf("%d ",c[i]);
}
void sort1(int a[],int n){
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-1-i;j++)
            if(a[j]<a[j+1]){
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
}
void sort2(int a[],int n){
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-1-i;j++)
            if(a[j]>a[j+1]){
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
}

以上代码仅供参考


目录
相关文章
|
7天前
|
存储 C语言
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
21 4
|
2月前
|
算法
LeetCode第2题两数相加
该文章介绍了 LeetCode 第 2 题两数相加的解法,通过同时遍历两个链表的头节点,创建新链表接收计算结果,时间复杂度为 O(n)。
LeetCode第2题两数相加
|
2月前
|
JavaScript 前端开发 PHP
leetcode——两数相加【二】
leetcode——两数相加【二】
30 0
|
5月前
38.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
38.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
55 0
|
测试技术 C语言 索引
力扣12&13-整数与罗马数字互换
力扣12&13-整数与罗马数字互换
60 0
|
存储 算法 Java
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
leetcode刷题记录:7.整数反转,8.字符串转整数,9.回文数
52 0
|
数据处理
整数数组中最大子数组的和(2)—— 处理二维数组
将二维转化为一维处理,当子矩阵的上下行确定时,把上下行中每一列的数据当作一个单元,确定左右列的过程就是求以列为单元的一维数组的子数组最大和的过程,这种方法大大提高了效率
83 0
整数数组中最大子数组的和(2)—— 处理二维数组