奇數(shù)單增數(shù)列(C++)
信息學(xué)一本通C++版基礎(chǔ)算法2數(shù)據(jù)排序1177
【題目描述】
給定一個(gè)長(zhǎng)度為N(不大于500)的正整數(shù)序列,請(qǐng)將其中的所有奇數(shù)取出,并按升序輸出。
【輸入】
第1行為 N;
第2行為 N 個(gè)正整數(shù),其間用空格間隔。
【輸出】
增序輸出的奇數(shù)序列,數(shù)據(jù)之間以逗號(hào)間隔。數(shù)據(jù)保證至少有一個(gè)奇數(shù)。
#include<bits/stdc++.h>
using namespace std;
const int MAXN=10001;
int n,k,i,j;
int temp,a[MAXN];
int main(){
cin>>n;//輸入要排序數(shù)的個(gè)數(shù)?
//依次輸入需要排序的數(shù)?
for(i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);//sort排序?qū)⑺幸判虻臄?shù)從小到大排?
k=0;//這里的k是用來判斷當(dāng)前數(shù)是否是第一個(gè)數(shù),如果是那么前面不加逗號(hào)并把k賦值為1?
for(i=1;i<=n;i++){//輸出?
if(a[i]%2==1){//判斷奇偶?
if(k==0){//如果k為0,那么這個(gè)數(shù)是奇數(shù)中的第一個(gè)?
cout<<a[i];//輸出該數(shù)?
k=1;//并把k賦值為1,并且以后的數(shù)不可能為第一個(gè)數(shù),不會(huì)在進(jìn)入這個(gè)判斷?
}else{
cout<<","<<a[i];//除了第一個(gè)數(shù),其他奇數(shù)的排序是要加一個(gè)逗號(hào)在輸出的?
}
}
}
//結(jié)束,完美?
? ? return 0;
}