1 #include<stdio.h> 2 #include<algorithm> 3 using namespace std; 4 const int N=10; 5 int main() 6 { 7 int arr[10],odd[10],even[10]; 8 while(scanf("%d",&arr[0])!=EOF) 9 { 10 for(int i=1 ; i<N ; ++i) 11 scanf("%d",&arr[i]); 12 sort(arr,arr+N); 13 int io=0,ie=0; 14 for(int i=0 ; i<N ; ++i) 15 if(arr[i]%2==0) 16 even[ie++]=arr[i]; 17 else 18 odd[io++]=arr[i]; 19 bool mark=0; //标记有没有奇数 20 if(io!=0) 21 mark=1; 22 while(io!=0) //从后向前打印奇数 23 { 24 printf("%d",odd[--io]); 25 if(io!=0) 26 printf(" "); 27 } 28 int cnt=0; 29 while(cnt!=ie) //从前向后打印偶数 30 { 31 if(0==cnt && 0==mark) //【caution】之前没有奇数,开头不能为空格 32 printf("%d",even[cnt++]); 33 printf(" %d",even[cnt++]); 34 } 35 printf("\n"); 36 } 37 return 0; 38 }
由于数据可能是有机有偶,只有奇数,只有偶数,要分不同情况讨论,空格的处理非常重要
时间: 2024-11-05 22:47:06