首先,我得介紹一下這個網站,是專門刷題用的。。。題目:
http://ybt.ssoier.cn:8088/problem_show.php?pid=1181
1181:整數奇偶排序
時間限制: 1000 ms 內存限制: 65536 KB
提交數: 2656 通過數: 1537
【題目描述】
給定10個整數的序列,要求對其重新排序。排序要求:
1.奇數在前,偶數在后;
2.奇數按從大到小排序;
3.偶數按從小到大排序。
【輸入】
輸入一行,包含10個整數,彼此以一個空格分開,每個整數的范圍是大於等於0,小於等於30000。
【輸出】
按照要求排序后輸出一行,包含排序后的10個整數,數與數之間以一個空格分開。
【輸入樣例】
4 7 3 13 11 12 0 47 34 98
【輸出樣例】
47 13 11 7 3 0 4 12 34 98
首先,這肯定是快排,但我今天不說這個,我說的是:循環!!!!
獻上代碼:
#include<bits/stdc++.h> using namespace std; int main() { long long i,a[100],b[100],c[100],k=0,j,m,t=0,l=0; for (i=1;i<=10;i++) cin>>a[i]; for (i=1;i<=10;i++) { if (a[i]%2==1) { l++; b[l]=a[i]; } if (a[i]%2==0) { k++; c[k]=a[i]; } } { for (j=1;j<=l;j++) for (m=1;m<=l-1;m++) if (b[m+1]>b[m]) {t=b[m];b[m]=b[m+1];b[m+1]=t;} for (j=1;j<=l;j++) cout<<b[j]<<" "; t=0; } { for (j=1;j<=k;j++) for (m=1;m<=k-1;m++) if (c[m+1]<c[m]) {t=c[m];c[m]=c[m+1];c[m+1]=t;} for (j=1;j<=k;j++) cout<<c[j]<<" "; t=0; } }