整数奇偶排序

news2024/12/16 23:14:02

整数奇偶排序

      • C语言代码
      • C++ 代码
      • Java代码
      • Python代码


💐The Begin💐点点关注,收藏不迷路💐

给定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

C语言代码

#include <stdio.h>

// 交换两个整数的函数
void swap(int *a, int *b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() {
    int n = 10;
    int num;
    int p = 0;
    int q = 0;
    int a[11]; // 存储奇数,多留一位方便操作
    int b[11]; // 存储偶数,多留一位方便操作

    // 循环读取10个整数
    for (int i = 0; i < n; i++) {
        scanf(“%d”, &num);
        if (num % 2 == 1) { // 如果是奇数
            a[++p] = num; // 将奇数存入数组a
        } else {
            b[++q] = num; // 将偶数存入数组b
        }
    }

    // 对奇数数组进行从大到小的选择排序
    for (int i = 1; i < p; i++) {
        for (int j = i + 1; j <= p; j++) {
            if (a[i] < a[j]) { // 如果前面的奇数小于后面的奇数
                swap(&a[i], &a[j]); // 交换它们的位置
            }
        }
    }

    // 对偶数数组进行从小到大的选择排序
    for (int i = 1; i < q; i++) {
        for (int j = i + 1; j <= q; j++) {
            if (b[i] > b[j]) { // 如果前面的偶数大于后面的偶数
                swap(&b[i], &b[j]); // 交换它们的位置
            }
        }
    }

    // 输出排序后的奇数
    for (int i = 1; i <= p; i++) {
        printf("%d “, a[i]);
    }
    // 输出排序后的偶数
    for (int i = 1; i <= q; i++) {
        printf(”%d ", b[i]);
    }

    return 0;
}

C++ 代码

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int n = 10;
    int num;
    int p = 0;
    int q = 0;
    int a[11]; // 存储奇数,多留一位方便操作
    int b[11]; // 存储偶数,多留一位方便操作

    // 循环读取10个整数
    for (int i = 0; i < n; i++) {
        cin >> num;
        if (num % 2 == 1) { // 如果是奇数
            a[++p] = num; // 将奇数存入数组a
        } else {
            b[++q] = num; // 将偶数存入数组b
        }
    }

    // 使用标准库的sort函数对奇数数组进行从大到小排序(自定义比较函数)
    sort(a + 1, a + p + 1, [](int x, int y) { return x > y; });

    // 使用标准库的sort函数对偶数数组进行从小到大排序(自定义比较函数)
    sort(b + 1, b + q + 1, [](int x, int y) { return x < y; });

    // 输出排序后的奇数
    for (int i = 1; i <= p; i++) {
        cout << a[i] << " ";
    }
    // 输出排序后的偶数
    for (int i = 1; i <= q; i++) {
        cout << b[i] << " ";
    }

    return 0;
}

Java代码

import java.util.Arrays; import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int n = 10;
        Scanner scanner = new Scanner(System.in);
        int[] a = new int[11]; // 存储奇数,多留一位方便操作
        int[] b = new int[11]; // 存储偶数,多留一位方便操作
        int p = 0;
        int q = 0;

        // 循环读取10个整数
        for (int i = 0; i < n; i++) {
            int num = scanner.nextInt();
            if (num % 2 == 1) { // 如果是奇数
                a[++p] = num; // 将奇数存入数组a
            } else {
                b[++q] = num; // 将偶数存入数组b
            }
        }

        // 使用Arrays.sort函数结合自定义比较器对奇数数组进行从大到小排序
        Arrays.sort(a, 1, p + 1, (x, y) -> y - x);

        // 使用Arrays.sort函数结合自定义比较器对偶数数组进行从小到大排序
        Arrays.sort(b, 1, q + 1, (x, y) -> x - y);

        // 输出排序后的奇数
        for (int i = 1; i <= p; i++) {
            System.out.print(a[i] + " ");
        }
        // 输出排序后的偶数
        for (int i = 1, i <= q; i++) {
            System.out.print(b[i] + " ");
        }
    }
}

Python代码

nums = list(map(int, input().split())) # 读取输入的10个整数并转换为列表
odds = sorted([num for num in nums if num % 2 == 1], reverse=True) # 筛选出奇数并从大到小排序
evens = sorted([num for num in nums if num % 2 == 0]) # 筛选出偶数并从小到大排序
print(" ".join(map(str, odds + evens))) # 先输出奇数再输出偶数,将整数转换为字符串并用空格连接后输出

在这里插入图片描述


💐The End💐点点关注,收藏不迷路💐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2260736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

泷羽sec学习打卡-brupsuite7搭建IP炮台

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-Brup-IP炮台搭建 搭建炮台服务端安装zmap1、更新系统和安装基础依赖&#xff…

自适应卡尔曼滤波(包括EKF、UKF、CKF等)的创新思路——该调什么、不该调什么

在调节自适应卡尔曼滤波时&#xff0c;需要注意的参数和矩阵都对滤波器的性能有直接影响。本文给出详细的说明&#xff0c;包括相关公式和 MATLAB 代码示例 文章目录 需要调节的参数1. **过程噪声协方差矩阵 Q Q Q**&#xff1a;2. **测量噪声协方差矩阵 R R R**&#xff1a;…

【C语言】浮点数的原理、整型如何转换成浮点数

众所周知C语言中浮点数占四个字节&#xff0c;无论在32位或者64位机器上。不免会发出疑问四个字节是怎么计算出小数的呢&#xff1f;其实物理存放还是按照整型存放的。 IEEE 754 单精度浮点数格式 浮点数在计算机中是使用 IEEE 754 标准进行表示的。在 IEEE 754 标准中&#…

深入理解addEventListener中的第二个参数:listener

起因 首先&#xff0c;之前留给我们的一点东西&#xff0c;js的深入内容关键在addEventListener&#xff0c;这个函数中的参数&#xff0c;它们三个参数&#xff0c;分别为type、listener、options&#xff0c;当然在这里还有一些小的问题&#xff0c;比如mdn文档中它介绍到了另…

【密码学】ZUC祖冲之算法

一、ZUC算法简介 ZUC算法&#xff08;祖冲之算法&#xff09;是中国自主研发的一种流密码算法&#xff0c;2011年被3GPP批准成为4G国际标准&#xff0c;主要用于无线通信的加密和完整性保护。ZUC算法在逻辑上采用三层结构设计&#xff0c;包括线性反馈移位寄存器&#xff08;L…

详解下c语言下的多维数组和指针数组

在实际c语言编程中&#xff0c;三维及以上数组我们使用的很少&#xff0c;二维数组我们使用得较多。说到数组&#xff0c;又不得关联到指针&#xff0c;因为他们两者的联系太紧密了。今天我们就详细介绍下c语言下的多维数组(主要是介绍二维数组)和指针。 一、二维数组 1.1&am…

EXCEL的各种图形,统计图形

目录 0 EXCEL的各种图形&#xff0c;统计图形 1 统计图形 / 直方图 / 其实叫 频度图 hist最合适(用原始数据直接作图) 1.1 什么是频度图 1.2 如何创建频度图&#xff0c;一般是只选中1列数据&#xff08;1个数组&#xff09; 1.3 如何修改频度图的宽度 1.4 hist图的一个特…

npm内存溢出

项目过大运行项目内存溢出 报错代码 运行内存溢出 increase-memory-limit ‘“node --max-old-space-size8192”’ 不是内部或外部命令&#xff0c;也不是可运行的程序 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of m…

快速部署一套K8s集群-v1.28

快速部署一套K8s集群-v1.28 1.前置知识点 1.1 生产环境可部署Kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式: kubeadmKubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 二进制包从github下载发行版的二进…

Y3编辑器教程5:触发器进阶使用(镜头、UI、表格、函数库、排行榜、游戏不同步)

文章目录 一、游戏声音设计二、 游戏镜头设计2.1 镜头的基本参数2.2 镜头时间轴动画 三、界面编辑3.1 界面编辑器设置3.2 添加按钮事件3.3 触发编写 四、 表格编辑器&#xff08;实现对话UI&#xff09;4.1 一维表和多维表4.2 数据验证、搜索、保存与撤销4.3 Excel导入导出4.4 …

vue3实现页签

功能点&#xff1a; 新增和删除页签拖拽页签 需要引入插件"vue-draggable-plus": "^0.6.0", 代码已注释右键弹框操作页签左右点击滚动页签和鼠标滑轮滚动页签 注意点 useStore涉及的部分是pina的缓存&#xff0c;需要改成自己的&#xff1b;userStore.tab…

ARCGIS国土超级工具集1.2更新说明

ARCGIS国土超级工具集V1.2版本&#xff0c;功能已增加至47 个。在V1.1的基础上修复了若干使用时发现的BUG&#xff0c;新增了"矢量分割工具"菜单&#xff0c;同时增加及更新了了若干功能&#xff0c;新工具使用说明如下&#xff1a; 一、勘测定界工具栏更新界址点成果…

element-ui实现table表格的嵌套(table表格嵌套)功能实现

最近在做电商类型的官网&#xff0c;希望实现的布局如下&#xff1a;有表头和表身&#xff0c;所以我首先想到的就是table表格组件。 表格组件中常见的就是&#xff1a;标题和内容一一对应&#xff1a; 像效果图中的效果&#xff0c;只用基础的表格布局是不行的&#xff0c;因…

图像分割数据集石头rock分割数据集labelme格式2602张3类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;2602 标注数量(json文件个数)&#xff1a;2602 标注类别数&#xff1a;3 标注类别名称:["claystone","silt","…

语音芯片赋能可穿戴设备:开启个性化音频新体验

在科技日新月异的今天&#xff0c;语音芯片与可穿戴设备的携手合作&#xff0c;正引领我们步入一个前所未有的个性化音频时代。这一创新融合&#xff0c;用户可以享受到更加个性化、沉浸式的音频体验。下面将详细介绍语音芯片与可穿戴设备合作的优点和具体应用。 1. 定制化音效…

数据挖掘之聚类分析

聚类分析&#xff08;Clustering Analysis&#xff09; 是数据挖掘中的一项重要技术&#xff0c;旨在根据对象间的相似性或差异性&#xff0c;将对象分为若干组&#xff08;簇&#xff09;。同一簇内的对象相似性较高&#xff0c;而不同簇间的对象差异性较大。聚类分析广泛应用…

【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(四)

目录 ARC规则 规则 对象型变量不能作为C语言结构体的成员 显式转换id和void* 属性 数组 ARC规则 规则 在ARC有效的情况下编译源代码必须遵守一定的规则&#xff1a; 主要解释一下最后两条 对象型变量不能作为C语言结构体的成员 要把对象型变量加入到结构体成员中时&a…

Java-25 深入浅出 Spring - 实现简易Ioc-01 Servlet介绍 基本代码编写

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

微服务SpringCloud链路追踪之Micrometer+Zipkin

视频教程&#xff1a; https://www.bilibili.com/video/BV12LBFYjEvR 效果演示 当我们发送一个请求给 Gateway 的时候&#xff0c;由 Micrometer trace 进行链路追踪和数据收集&#xff0c;由 Zipkin 进行数据展示。可以清楚的看到微服务的调用过程&#xff0c;以及每个微服务…

【Java】Iterator迭代器相关API

Iterator 是 Java 集合框架中用于遍历集合&#xff08;List、Set 等&#xff09;的工具&#xff0c;它提供了访问集合中每个元素的统一接口&#xff0c;避免直接操作集合的实现细节。 Iterator的基本使用和方法 基本方法 hasNext()&#xff1a;检查是否还有元素可供迭代。ne…