九度OJ 题目1117:整数奇偶排序
********************************
* 日期: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[10];
int even[10];
int odd[10];
//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
while(scanf("%d",&number[0])!=EOF)
{
evenCount = 0;
oddCount = 0;
if(number[0] % 2){
odd[oddCount++] = number[0];
}
else{
even[evenCount++] = number[0];
}
for(i = 1;i < 10;i++){
scanf("%d",&number[i]);
//奇数
if(number[i] % 2){
odd[oddCount++] = number[i];
}
//偶数
else{
even[evenCount++] = number[i];
}
}
//排序
qsort(even,evenCount,sizeof(even[0]),cmp);
qsort(odd,oddCount,sizeof(odd[0]),cmp2);
//1.先输出其中的奇数,并按从大到小排列;2.然后输出其中的偶数,并按从小到大排列。
//输出奇数
int flag = 0;
for(i = 0;i < oddCount;i++){
if(flag){
printf(" ");
}
printf("%d",odd[i]);
flag = 1;
}
//没有偶数只有奇数
if(evenCount == 0){
printf("\n");
}
//有偶数无奇数
else if(oddCount != 0){
printf(" ");
}
//输出偶数
for(i = 0;i < evenCount;i++){
if(i == evenCount-1){
printf("%d\n",even[i]);
}
else{
printf("%d ",even[i]);
}
}
}
return 0;
}
/*********************************
* 日期: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[10];
int even[10];
int odd[10];
//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
while(scanf("%d",&number[0])!=EOF)
{
evenCount = 0;
oddCount = 0;
if(number[0] % 2){
odd[oddCount++] = number[0];
}
else{
even[evenCount++] = number[0];
}
for(i = 1;i < 10;i++){
scanf("%d",&number[i]);
//奇数
if(number[i] % 2){
odd[oddCount++] = number[i];
}
//偶数
else{
even[evenCount++] = number[i];
}
}
//排序
qsort(even,evenCount,sizeof(even[0]),cmp);
qsort(odd,oddCount,sizeof(odd[0]),cmp2);
//1.先输出其中的奇数,并按从大到小排列;2.然后输出其中的偶数,并按从小到大排列。
//输出奇数
int flag = 0;
for(i = 0;i < oddCount;i++){
if(flag){
printf(" ");
}
printf("%d",odd[i]);
flag = 1;
}
//没有偶数只有奇数
if(evenCount == 0){
printf("\n");
}
//有偶数无奇数
else if(oddCount != 0){
printf(" ");
}
//输出偶数
for(i = 0;i < evenCount;i++){
if(i == evenCount-1){
printf("%d\n",even[i]);
}
else{