Максимально возможное число и минимально возможное число
Не могу понять как решить задачу, смысл которой, заключается в том, чтобы пользователь вводил одно целое число n, потом n цифр(без пробелов). Далее их этих цифр должно быть составлено максимально возможное число и минимально возможное число. Я написала код, но если в последовательности был 0, то в минимальном числе первая цифра 0, что не должно быть. Подскажите, пожалуйста, как это исправить:
#include <iostream>
using namespace std;
int main ()
{
int n;
cin>>n;
char A[n];
int buf;
for (int i = 0; i<n; i++)
{
cin>>A[i];
}
for (int i=1; i<n; i++)
{
for (int j=1; j<n-i+1; j++)
{
if (A[j-1] < A[j])
{
buf = A[j-1];
A[j-1] = A[j];
A[j] = buf;
}
}
}
for (int i = 0; i<n; i++)
{
cout << A[i];
}
cout<<endl;
for (int i=1; i<n; i++)
{
for (int j=1; j<n-i+1; j++)
{
if (A[j-1] > A[j])
{
buf = A[j-1];
A[j-1] = A[j];
A[j] = buf;
}
}
}
for (int i = 0; i<n; i++)
{
cout << A[i];
}
return 0;
}
Источник: Stack Overflow на русском