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个整数,按奇数升序,偶数降序排列输出的主要内容,如果未能解决你的问题,请参考以下文章