问题描述
在数字王国中,有值为 1∼n1∼n 之间的整数,有奇数也有偶数;他们想分别在奇数和偶数中选出各自的大王,也就是选出奇数和偶数的最大数作为奇数大王和偶数大王。
请你编程帮助数字王国选出奇数和偶数的大王,并将所有的数字从小到大输出。
比如,假设输入 55 个数,分别是 33 88 99 11 66 ,那么奇数大王(最大数)是 99 ,偶数大王(最大数)是 88 ,因此输出奇数大王和偶数大王以及所有数按照由小到大排序如下:
9 8
1 3 6 8 9
输入
输入有 22 行;
第 11 行有一个整数 nn(nn 是 10∼100010∼1000 之间的整数),代表数字王国中数字的总个数;
第 22 行有 nn 个整数(这些整数值在 1∼10000001∼1000000 之间,测试数据保证有奇数,也有偶数),数字之间用空格隔开。
输出
第 11 行输出 22 个整数,分别是奇数大王和偶数大王,两个数之间用空格隔开;
第 22 行将 nn 个整数从小到大排序后输出,数与数之间用空格隔开。
样例
输入
5 3 8 9 1 6
输出
9 8 1 3 6 8 9
输入
8 11 3 12 8 1 1 5 10
输出
11 12 1 1 3 5 8 10 11 12
答案:
#include<bits/stdc++.h>
//#include<iostream>
using namespace std;
int main(){
int n,i,j,maxj=0,maxo=0,a[1000];
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
if(a[i]%2==1){
if(a[i]>maxj){
maxj=a[i];
}
}if(a[i]%2==0){
if(a[i]>maxo){
maxo=a[i];
}
}
}for(i=1;i<=n-1;i++){
for(j=0;j<=n-1-i;j++){
if(a[j]>a[j+1]){
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}cout<<maxj<<" "<<maxo<<endl;
for(i=0;i<n;i++){
cout<<a[i]<<" ";
}return 0;
}