首页 > 编程语言 > 详细

【信息学奥赛一本通c++】1181:整数奇偶排序

时间:2018-09-21 14:41:45      阅读:269      评论:0      收藏:0      [点我收藏+]

首先,我得介绍一下这个网站,是专门刷题用的。。。题目:

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

 

【信息学奥赛一本通c++】1181:整数奇偶排序

原文:https://www.cnblogs.com/czh666/p/9686043.html

(1)
(2)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!