Как из цифр составить наименьшее и наибольшее число?

ввод : 7 4561501 вывод: 6554110 1014556. Самое простое сделал, а вот остальное не могу. Как отсортировать так, чтобы число не начиналось с 0. (нельзя использовать вспомогательные библиотеки)

 #include <stdio.h>
    int main() {
        char a[1000];
        int dryg[1000];
        int c, n, j = 0, buf = 0, min = 0;
        int i = 0;
        scanf_s("%d", &n);
        a[0] = getchar();
        for (i = 0; i < n; ++i)
            a[i] = getchar() - '0';
        for (int i = 0; i < n; ++i)
            dryg[i] = 0;
        for (int i = 0; i < n; ++i) {
            for (i = 0; i < n - 1; i++) {
                min = i;
                for (j = i + 1; j < n; j++)
                    if (a[j] < a[min])
                        min = j;
                buf = a[i];
                a[i] = a[min];
                a[min] = buf;
            }
        }
        for (int i = 0; i < n; ++i) {
            dryg[i] += a[i];
        }
        for (i = 0; i < n; ++i) {
            printf("%d", dryg[i]);
        }
    }

Ответы (0 шт):