((http://server.179.ru/olymp/2008/statements/g.html Условия задачи седьмого тура)) 

Возможное решение задачи:
1. Составить массив, в который занести все цифры числа.
2. Отсортировать этот массив по возрастанию.
3. Найти в этом массиве наименьшую ненулевую цифру, вывести ее.
4. Вывести все цифры, находящиеся левее нее в отсортированном массиве (это будут только нули).
5. Вывести все цифры, находящиеся правее нее в отсортированном массиве в порядке возрастания.

%%(email)
#include<iostream>

using namespace std;

// Функция сортировки массива по возрастанию
void sort(int A[], int size)
{
int t;
for(int i=size-1;i>0;--i)
{
for(int j=1;j<=i;++j)
{
if(A[j-1]>A[j])
{
t=A[j-1];
A[j-1]=A[j];
A[j]=t;
}
}
}
}

int main()
{
int n, i, j, size=0;
int Digits[10]; // Массив для хранения цифр числа
cin>>n; // Считали число

        // Заполняем массив Digits цифрами числа n
        // Одновременно в size записываем количество цифр в n
while(n>0)
{
Digits[size++]=n%10;
n/=10;
}

        // Сортируем массив Digits
sort(Digits,size);

        // Ищем индекс первого ненулевого элемента в Digits
i=0;
while(Digits[i]==0)
++i;
       
        // Выводим первый ненулевой элемент
cout<<Digits[i];

        // Выводим все цифры до i-й
for(j=0;j<i;++j)
cout<<Digits[j];

        // Выводим все цифры после i-й
for(j=i+1;j<size;++j)
cout<<Digits[j];

cout<<endl;
return 0;
}
%%

----
адрес оригинала: ((/Информатика/Олимпиады/2008/Школьная/Разбор/G))