【信息學奧賽一本通c++】1181:整數奇偶排序


首先,我得介紹一下這個網站,是專門刷題用的。。。題目:

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; 
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM