描述:

输入10个整数,彼此以空格分隔
重新排序以后输出(也按空格分隔),要求:
1.先输出其中的奇数,并按从大到小排列;
2.然后输出其中的偶数,并按从小到大排列。输入任意排序的10个整数(0~100),彼此以空格分隔输出按照要求排序后输出,由空格分隔样例输入

4 7 3 13 11 12 0 47 34 98

样例输出

47 13 11 7 3 0 4 12 34 98

提示1. 测试数据可能有很多组,请使用while(cin>>a[0]>>a[1]>>...>>a[9])类似的做法来实现;

2. 输入数据随机,有可能相等。

思路:这题是有点难度,特别注意只有奇数没有偶数的情况,只有偶数没有奇数的情况。可能没有偶数,那么输出奇数后不要有空格!

代码如下:

 /*********************************
* 日期:2013-2-5
* 作者:SJF0115
* 题号: 九度OJ 题目1117:整数奇偶排序
* 来源:http://ac.jobdu.com/problem.php?pid=1117
* 结果:AC
* 来源:2008年北京大学图形实验室计算机研究生机试真题
* 总结:注意只有奇数没有偶数的情况,只有偶数没有奇数的情况。可能没有偶数,那么输出奇数后不要有空格!
**********************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//偶数排序
int cmp(const void *a,const void *b){
return *(int *)a - *(int *)b;
}
//奇数排序
int cmp2(const void *a,const void *b){
return *(int *)b - *(int *)a;
}
int main()
{
int n,i,evenCount,oddCount;
int number[];
int even[];
int odd[];
//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
while(scanf("%d",&number[])!=EOF)
{
evenCount = ;
oddCount = ;
if(number[] % ){
odd[oddCount++] = number[];
}
else{
even[evenCount++] = number[];
}
for(i = ;i < ;i++){
scanf("%d",&number[i]);
//奇数
if(number[i] % ){
odd[oddCount++] = number[i];
}
//偶数
else{
even[evenCount++] = number[i];
}
}
//排序
qsort(even,evenCount,sizeof(even[]),cmp);
qsort(odd,oddCount,sizeof(odd[]),cmp2);
//1.先输出其中的奇数,并按从大到小排列;2.然后输出其中的偶数,并按从小到大排列。
//输出奇数
int flag = ;
for(i = ;i < oddCount;i++){
if(flag){
printf(" ");
}
printf("%d",odd[i]);
flag = ;
}
//没有偶数只有奇数
if(evenCount == ){
printf("\n");
}
//有偶数无奇数
else if(oddCount != ){
printf(" ");
}
//输出偶数
for(i = ;i < evenCount;i++){
if(i == evenCount-){
printf("%d\n",even[i]);
}
else{
printf("%d ",even[i]);
}
}
}
return ;
}

Openjudge-计算概论(A)-整数奇偶排序的更多相关文章

  1. OpenJudge计算概论-分离整数的各个数位

    /*================================================================= 分离整数的各个数位 总时间限制: 1000ms 内存限制: 65 ...

  2. openjudge计算概论-大整数加法

    /*=====================================================================1004:大整数加法总时间限制: 1000ms 内存限制: ...

  3. OpenJudge计算概论-整数奇偶排序

    /*===================================== 整数奇偶排序 总时间限制: 1000ms 内存限制: 65536kB 描述 输入10个整数,彼此以空格分隔 重新排序以后 ...

  4. OpenJudge计算概论-取石子游戏

    OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...

  5. P1021 整数奇偶排序

    整数奇偶排序 题目出处:<信息学奥赛一本通>第二章上机练习6,略有改编 题目描述 告诉你包含 \(n\) 个数的数组 \(a\) ,你需要把他们按照"奇数排前面,偶数排后面:奇数 ...

  6. OpenJudge计算概论-奇偶排序

    /*==============================================总时间限制: 1000ms 内存限制: 65536kB描述 输入十个整数,将十个整数按升序排列输出,并且 ...

  7. Openjudge计算概论——数组逆序重放【递归练习】

    /*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...

  8. OpenJudge计算概论-计算书费

    /*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...

  9. OpenJudge计算概论-最高的分数

    /*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...

随机推荐

  1. 简单的python协同过滤程序

    博主是自然语言处理方向的,不是推荐系统领域的,这个程序完全是为了应付大数据分析与计算的课程作业所写的一个小程序,先上程序,一共55行.不在意细节的话,55行的程序已经表现出了协同过滤的特性了.就是对每 ...

  2. dplyr 数据操作 常用函数(2)

    继上一节常用函数,继续了解其他函数 1.desc() 这个函数和SQL中的排序用法是一样的,表示对数据进行倒序排序. 接下来我们看些例子. a=sample(20,50,rep=T)a desc(a) ...

  3. ToString() 格式化

    c# ToString() 格式化字符串  格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化.我们使用格式字符串指定格式.格式字符串采用以下形式:Axx,其中 A 为格式 ...

  4. 解决 bootstrap 在IE8下的兼容问题

    <meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="v ...

  5. studio_svn

    最新升级IDEA12到13版本,升级后发现IDEA中SVN无法正常使用,但文件夹下能够正常使用. 并且报错:svn: E204899: Cannot run program "svn&quo ...

  6. TCP和UDP报文分片的区别

    搞了三年网络,今天才知道这个细节,汗,总结下: MTU大家都知道,是链路层中的网络对数据帧的一个限制,依然以以太网为例,MTU为1500个字节.一个IP数据报在以太网中 传输,如果它的长度大于该MTU ...

  7. ModelDriven

    功能:  submit 之后显示结果  1.项目结构 2.web.xml <?xml version="1.0" encoding="UTF-8"?> ...

  8. 使用Pycharm 安装三方库

    除了使用easy_insatll和pip工具安装Python第三方库外还可以使用pycharm安装Python第三方库,步骤如下: 1.打开pycharm,点击File,再点击settings 2.点 ...

  9. ServiceContract,OperationContract

    代码如下 [ServiceContract] //服务协定定义 using System.ServiceModel; public interface IInterface1 { [Operation ...

  10. Centos6.3手动rpm安装gcc,c++

    如果你的服务器是不能上网的,那就说明你要手动安装很多软件,比如gcc; 1,首先到http://vault.centos.org/6.3/os/x86_64/Packages/下载用到的rpm包,包括 ...