这怎么做啊,有没兄弟解答一下

从键盘输入一个正整数(无符号长整型),将该正整数中的每位数字重新排列,分别组成一个最大数和一个最小数并依次输出,两数间用空格分隔。

【输入形式】

从键盘输入一个无符号长整型整数。

【输出形式】

输出最大数和最小数,两数间用空格分隔,最小数左端的0不应输出。

【样例输入】

47091

【样例输出】

97410 1479

#include<stdio.h>
int main() {
    int a[20],n,l=0,t,smin=0,smax=0,i,j;
    scanf("%d",&n);
    while(n!=0){
        a[l++]=n%10;
        n/=10;
    }
    for(i=0;i<l-1;i++){
        for(j=0;j<l-i-1;j++){
            if(a[j]>a[j+1]){
                t=a[j];    a[j]=a[j+1]; a[j+1]=t;
            }
        }
    }
    for(i=l-1;i>=0;i--){
        smax=smax*10+a[i];
    }
    for(i=0;i<l;i++){
        smin=smin*10+a[i];
    }
    printf("%d %d",smax,smin);
    return 0;
}