CSDN每日一练奇偶排序 C语言

题目名称:奇偶排序
时间限制:1000ms内存限制:256M
题目描述
一个数组里有奇数有偶数(乱序),调整数组顺序使奇数位于偶数前面。(测试用例仅做参考,我们会根据代码质量进行评分)

输入描述:
第一行输入整数n。 第二行输入n个整数。

输出描述:
输出排序后的n个整数。

示例
示例1
输入

4
2 3 1 23

输出

3 1 23 2

所需变量

int ji[100005] ;//用于装每一个奇数的数组
int ou[10005] ;//用于装每一个偶数的数组
int n; //用于输入这个数组有多少个数
int temp;//用于接受每一个未分组的数字
int i; //循环变量
int jii;//奇数的循环变量
int oui;//偶数的循环变量
int control;//用于判断第一个数是否已经输入

思路:我们可以可以将所有数字先输入进来,然后再判断这个数是奇数还是偶数,然后再将它分组,分组后记得将后面那个数置为-1,这样好判断未来的终止条件。
然后再将每个数组中的数一个一个输出出来就完成了。
该算法本人认为还是比较优的,如果有更好的想法,欢迎q我!
代码如下(编译器是dev,语言是C语言):

#include <stdio.h>
#include <stdlib.h>
#include<stdbool.h>
int ji[100005] = {0},ou[100005] = {0},n,temp,i,jii = 0,oui = 0,control = 0;
int main(){
    ji[0] = -1;
    ou[0] = -1;
    scanf("%d",&n);
    for(i = 0;i<n;i++){
        scanf("%d",&temp);
        if(temp%2 == 0){
            ou[oui++] = temp;
            ou[oui] = -1;
        }else{
            ji[jii++] = temp;
            ji[jii] = -1;
        }
    }
    i = 0;
    while(true){
        if(ji[i] == -1){
            break;
        }
        if(control == 0){
            printf("%d",ji[i]);
            control = 1;
        }else{
            printf(" %d",ji[i]);
        }
        i++;
    }
    i = 0;
    while(true){
        if(ou[i] == -1){
            break;
        }
        if(control == 0){
            printf("%d",ou[i]);
            control = 1;
        }else{
            printf(" %d",ou[i]);
        }
        i++;
    }
    printf("\n");
    return 0;
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
影分身是一种在忍者世界中常见的特殊技能,也是《火影忍者》中的一个重要元素。每个人都可以通过影分身术创造出许多个分身,这些分身可以同时进行各种活动。类比于影分身术,CSDN每日一练就像是一个模拟的技能训练场。每天CSDN都会发布一道题目供广大程序员参与练习。 参与影分身CSND每日一练的好处有许多。首先,通过每日一练,程序员们可以不断提高自己的编程能力。就像影分身可以通过快速反应和高效操作来增强自己的实力一样,参与每日一练可以锻炼程序员的编程思维和解决问题的能力。 其次,每日一练还可以丰富程序员的知识储备。每道题目都是经过精心挑选和设计的,涵盖了各种常见的编程知识点和技巧。通过解答这些问题,程序员们能够接触到各种新的问题和方法,扩展自己的知识领域。 另外,参与每日一练还可以增强程序员的交流与学习能力。在每道题目下方,CSDN提供了评论区供程序员们交流和讨论。程序员们可以在这里分享自己的解题思路和方法,互相学习和进步。这不仅能够提高解题能力,还能够拓宽视野,了解不同的编程思维和技术。 综上所述,影分身CSND每日一练就像是一个虚拟的技能训练场,可以帮助程序员们不断提升自己的编程能力,丰富知识储备,增强交流与学习能力。参与其中,每个程序员都能像影分身一样变得更加强大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值