c++输入n及n个整数,按奇数升序,偶数降序排列输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++输入n及n个整数,按奇数升序,偶数降序排列输出相关的知识,希望对你有一定的参考价值。

以下是我实现的一种方式,里面有大量的注释,有不懂之处欢迎提问,望采纳。

#include <iostream>
using namespace std;
#define Ascending true//升序
#define Decending false//降序
/**
 * 交换a和b的值
 */
void swap(int &a,int &b)//&表示引用作为参数,也可以使用指针的形式,但不能直接传形参的方式,否则无法交换

    int temp = a;
    a=b;
    b=temp;

/**
 * [sort 排序,根据type决定是升序还是降序]
 * @param ary  [传进来要排序的数组]
 * @param len  [排序数目]
 * @param type [排序类型,升序或降序]
 */
void sort(int *ary,int len,bool type)

    //每个数同后面的所有数都比较一次,将最值放到最前面,下次从下一个开始比较
    for(int i=0;i<len;i++)
    
        for(int j=i+1;j<len;j++)
        
            if(type == Ascending)//升序,小的在前面
            
                if(ary[i] > ary[j])
                    swap(ary[i],ary[j]);
            
            else//降序,大的在前面
            
                if(ary[i] < ary[j])
                    swap(ary[i],ary[j]);
            
                
        
        cout << ary[i] << " ";//一轮比较下来获得最值,输出,也可以在外面对已经排序好的数组进行打印输出
    

int main()

    int N = 0;
    cout << "请输入总数:";
    cin >> N;
    int *arry_odd = new int[N];//存放奇数
    int *arry_even = new int[N];//存放偶数
    int odd_count = 0;//奇数计数
    int even_count = 0;//偶数计数
    int temp_num = 0; //临时存放从键盘获取的值,判断奇偶之后存到相应数组
    if(arry_odd != NULL && arry_even != NULL)
    
        for(int i=0;i<N;i++)
        
            cout << "请输入第 " << i << " 个数:";
            cin >> temp_num;
            if(temp_num % 2 == 0)//偶数
            
                arry_even[even_count] = temp_num;
                even_count++;
            
            else //奇数
            
                arry_odd[odd_count] = temp_num;
                odd_count++;
            
        
        cout << "奇数:"<<endl;
        sort(arry_odd,odd_count,Ascending);//奇数升序传参Ascending类型
        cout << endl;
        cout << "偶数:"<<endl;
        sort(arry_even,even_count,Decending);//偶数降序传参Decending类型
        cout << endl;
        delete[] arry_odd;//回收动态分配的内存
        delete[] arry_even;//回收动态分配的内存
    
    return 0;
参考技术A 元宵夜,元春回娘家待了一会儿,要宝玉和众姐妹献诗。宝玉和黛玉两小无猜,情意绵绵。书童茗烟将《西厢记》等书偷进园给宝玉,宝玉和黛玉一同欣赏。宝玉庶弟贾环嫉妒宝玉,抄写经书时装失手弄倒蜡烛烫伤宝玉,王夫人大骂赵姨娘。赵姨娘又深恨凤姐,便请马道婆施魔法,让凤姐、宝玉中邪。癞和尚、跛道人擦拭通灵玉、救好二人。

ZZNUOJ_C语言1124:两个有序数组合并(附完整源码)

题目描述

已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。

输入

输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于100000。

输出

输出合并后的m+n个整数,数据之间用空格隔开。输出占一行。

样例输入

4 1 3 5 7
3 6 4 2

样例输出

7 6 5 4 3 2 1

完整源码:

#include<stdio.h>
#

以上是关于c++输入n及n个整数,按奇数升序,偶数降序排列输出的主要内容,如果未能解决你的问题,请参考以下文章

vb实验 随机数中求奇偶数和素数并进行排序

ZZNUOJ_C语言1124:两个有序数组合并(附完整源码)

编程题#2:奇偶排序

上机报告

输入一个整数数组,输出奇偶数相间排列的数组

c++中,输入10个数,判断奇数和偶数的个数(用数组),程序怎么写