题目描述:
给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。
输入:
共2行:
第1行为 N;
第2行为 N 个正整数,其间用空格间隔。
输出:
增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。
样例输入:
10
1 3 2 6 5 4 9 8 7 10
样例输出:
1,3,5,7,9
这个略带一点数学的含量,首先要搞懂奇数除以2是不等于0的(话说学到这的大佬们应该都知道吧……唉……又彪了……不要理我);其次,就得排序了。我这里是把所有奇数放到新的数组里再进行操作(这里用queue似乎简单得很),代码(随便抄(白眼)):
#include<iostream> #include<algorithm> using namespace std; int a[100000],b[100000]; int main() { int N,k,j,temp,d=1; cin>>N; for(int i=1;i<=N;i++) { cin>>a[i]; if(a[i]%2!=0) { b[d]=a[i]; d++; } } sort(b+1,b+d+1); for(int i=1;i<=d;i++) { if(b[i]!=0) { if(i==d)printf("%d",b[i]); else printf("%d,",b[i]); } } return 0; }