1 solutions

  • 0
    @ 2021-11-8 21:09:38

    题解

    这道题挺简单的来着(认真做了上周的训练计划那道1728就应该可以的),但是怎么有人一直T啊(TAT),我不李姐。

    思路

    就是在输入的时候就把奇数偶数分开存好,最后输出的时候记得判断有没有空格就行。这是最简单的桶排了吧,而且范围也不大,当然手写快排和sort函数也能过,但是目前还是建议少用函数。

    代码

    #include<stdio.h>
    int a[1005]={0},b[1005]={0};
    int main(){
    	int n;
    	scanf("%d",&n);
    	while(n--){
    		int num=0,sum=0,x;
    		while(~scanf("%d",&x)&&x){//遇到0结束可以直接在输入的时候判断
    			sum++;
    			if(x%2==0) a[x]++;
    			else b[x]++;
    		}
    		for(int i=1000;i>0;i--){
    			while(a[i]){
    				num++;
    				printf("%d",i);
    				if(num!=sum) printf(" ");
    				a[i]--;
    			}
    		}	
    		for(int i=1000;i>0;i--){
    			while(b[i]){
    				num++;
    				printf("%d",i);
    				if(num!=sum) printf(" ");
    				b[i]--;
    			}
    		}
    		printf("\n");		
    	}
    	return 0;
    }
    

    Information

    ID
    152
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    7
    Tags
    # Submissions
    123
    Accepted
    25
    Uploaded By