奇数单增数列(C++)
信息学一本通C++版基础算法2数据排序1177
【题目描述】
给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。
【输入】
第1行为 N;
第2行为 N 个正整数,其间用空格间隔。
【输出】
增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。
#include<bits/stdc++.h>
using namespace std;
const int MAXN=10001;
int n,k,i,j;
int temp,a[MAXN];
int main(){
cin>>n;//输入要排序数的个数
//依次输入需要排序的数
for(i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);//sort排序将所有要排序的数从小到大排
k=0;//这里的k是用来判断当前数是否是第一个数,如果是那么前面不加逗号并把k赋值为1
for(i=1;i<=n;i++){//输出
if(a[i]%2==1){//判断奇偶
if(k==0){//如果k为0,那么这个数是奇数中的第一个
cout<<a[i];//输出该数
k=1;//并把k赋值为1,并且以后的数不可能为第一个数,不会在进入这个判断
}else{
cout<<","<<a[i];//除了第一个数,其他奇数的排序是要加一个逗号在输出的
}
}
}
//结束,完美
return 0;
}