1633 - 整数奇偶排序

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB


输入10个整数,彼此以空格分隔。重新排序以后输出(也按空格分隔),要求:<br />

1.先输出其中的奇数,并按从大到小排列;
2.然后输出其中的偶数,并按从小到大排列。

<br />

题目输入


任意排序的10个整数(0~100),彼此以空格分隔。

<br />

题目输出


可能有多组测试数据,对于每组数据,按照要求排序后输出,由空格分隔。

<br />

输入/输出样例

输入格式

0 56 19 81 59 48 35 90 83 75 
17 86 71 51 30 1 9 36 14 16 

输出格式

83 81 75 59 35 19 0 48 56 90
71 51 17 9 1 14 16 30 36 86

C语言解答

#include<stdio.h>
int main()
{
	int a[11];
	int i,j,m,t,h;
	while(scanf("%d",&m)!=EOF)
	{
		h=0;
		for(i=0;i<9;i++)
			scanf("%d",&a[i]);
		a[9]=m;
		for(j=0;j<9;j++)
		{
			for(i=0;i<9-j;i++)
			{
				if(a[i]>a[i+1])
				{
					t=a[i];
					a[i]=a[i+1];
					a[i+1]=t;
				}
			}
		}
		for(i=9;i>=0;i--)
		{
			if(a[i]%2!=0)
			{
			 	printf("%d ",a[i]);
			    h++;
			}
		}
		for(i=0;i<10;i++)
		{
			if(a[i]%2==0)
			{
				h++;
				if(h<=9)
				    printf("%d ",a[i]);
				else
					printf("%d",a[i]);
			}
		}
		printf("\n");
	}
	return 0;
}


C++解答

#include<stdio.h>
#define N 10
int main()
{    
	int a[N]={0},flag[N]={0};    
	int i,j,t=0,temp=0,g=1;    
	int f;
	while(1)
	{
		f=0;
		for(i=0;i<N;i++)    
		{        
			a[i]=-1;
			flag[i]=0;
			scanf("%d",&a[i]);        
			if(a[i]==-1)
				return 0;
			if(a[i]%2==0)            
				flag[i]=1;        
			else            
				flag[i]=0;    
		}    
		for(i=0;i<N-1;i++)    
		{        
			for(j=0;j<N-i-1;j++)            
			if(a[j]>a[j+1])            
			{                
				temp=a[j];                
				a[j]=a[j+1];                
				a[j+1]=temp;                
				t=flag[j];                
				flag[j]=flag[j+1];                
				flag[j+1]=t;            
			}    
		}    
		for(i=N-1;i>=0;i--)        
			if(flag[i]==0)
			{
				if(f==1)
					printf(" %d",a[i]);
				else
					printf("%d",a[i]);    
				f=1;
 
			}            			
		for(i=0;i<N;i++)        
			if(flag[i]==1)            
				printf(" %d",a[i]);
		printf("\n");
	}
}

Python解答

while True:
    lst = raw_input().split()
    lst_even = []
    lst_odd = []
    for num in lst:
        if int(num)%2==0:lst_even.append(int(num))
        elif int(num)%2!=0:lst_odd.append(int(num))
    lst_even.sort()
    new_odd = sorted(lst_odd)
    new_odd.reverse()
    for i in new_odd:
        print i,
    for j in lst_even[0:-1]:
        print j,
    print lst_even[-1]