Openjudge-计算概论(A)-整数奇偶排序
描述:
输入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)-整数奇偶排序的更多相关文章
- OpenJudge计算概论-分离整数的各个数位
/*================================================================= 分离整数的各个数位 总时间限制: 1000ms 内存限制: 65 ...
- openjudge计算概论-大整数加法
/*=====================================================================1004:大整数加法总时间限制: 1000ms 内存限制: ...
- OpenJudge计算概论-整数奇偶排序
/*===================================== 整数奇偶排序 总时间限制: 1000ms 内存限制: 65536kB 描述 输入10个整数,彼此以空格分隔 重新排序以后 ...
- OpenJudge计算概论-取石子游戏
OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...
- P1021 整数奇偶排序
整数奇偶排序 题目出处:<信息学奥赛一本通>第二章上机练习6,略有改编 题目描述 告诉你包含 \(n\) 个数的数组 \(a\) ,你需要把他们按照"奇数排前面,偶数排后面:奇数 ...
- OpenJudge计算概论-奇偶排序
/*==============================================总时间限制: 1000ms 内存限制: 65536kB描述 输入十个整数,将十个整数按升序排列输出,并且 ...
- Openjudge计算概论——数组逆序重放【递归练习】
/*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...
- OpenJudge计算概论-计算书费
/*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...
- OpenJudge计算概论-最高的分数
/*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...
随机推荐
- ueditor的工具按钮配置
定制工具栏图标 UEditor 工具栏上的按钮列表可以自定义配置,只需要通过修改配置项就可以实现需求 配置项修改说明 修改配置项的方法: 1. 方法一:修改 ueditor.config.js 里面的 ...
- Android设置窗体Activity背景透明
背景透明 style.xml <item name="android:windowBackground">@color/transparent</item> ...
- 1、<img />标签
alt:当图片不显示时的文字说明 title:鼠标悬停在图片上的出现的文字说明
- DataGrid 导出数据到 Excel
Private Sub GridToExl_Click() On Error Resume Next If DataGrid1.Columns.Count = 0 Then MsgBox " ...
- Tiny6410之LED裸机驱动
操作步骤: 第一步:查看开发板电路原理图 找到LED 的管脚所对应的寄存器 nLED_1 - GPK4 nLED_2 - GPK5 nLED_3 - GPK6 nLED_4 - GPK7 由原理图可知 ...
- 最受欢迎的iOS第三方SDK
http://www.raywenderlich.com/forums/viewtopic.php?t=4496
- 高一的我曾对自己说"要放慢脚步去生活"!?
看了高一的时候自己写的日记,瞬间被自己感动到了.以下是当时的几段感慨: 慢是一种放松.是生活的一种良好心态,喜欢这样放慢步伐地生活,那是一种享受! 但我们生活在一个快节奏的时代,我们总是被迫卷进那潮流 ...
- EBS FORM FOLDER 开发,单元格无法使用右键
问题描述: 在使用folder开发FORM后,单元格无法使用右键,正常应该可以右键进行隐藏.显示.复制等操作. 通过对比发现是因ITEM属性中 弹出式菜单未设置导致. 解决方法: 设置弹出式菜单
- c++ inline关键字的理解
1. inline是实现修饰符,而非声明修饰符,所以应该用于实现部分的修饰(你也可以放置inline在声明,但是没有必要) 2. 所有中类中定义的函数都默认声明为inline函数,所有我们不用显示地去 ...
- win10 Incredibuild 兼容
电脑换了win10,所有的软件都需要重新安装. win10的体验还是很不错的.但是也有一堆的问题.原来的vs2010今天无法再使用分布式编译IncrediBuild. 现象是,虽然可以连上分布式编译的 ...