C++

очень сильно туплю, раньше легко мог решить эту задачу но забыл. Дано четырёхзначное число. Напишите программу которая выводит на экран самое большое число, которое можно составить из цифр заданного четырёхзначного числа


pashchenkoartur24: Нормально?

Ответы

Ответ дал: alexshor
2

Ответ:

Результат в приложении

Объяснение:

int main()

{

   int value = 0;

   std::cout << "input value in range [1000..9999]";

   std::cin >> value;

   if (value < 1000 || value > 9999)

   {

       std::cout << "incorrect value";

       _getch();

       return 0;

   }

   // раскладываем число на цифры

   int a[4];

   for (int i = 0; i < 4; i++)

   {

       a[i] = value % 10;

       value /= 10;

   }

   // сортируем по убыванию

   for (int i = 0; i < 3; i++)

   {

       int n = i;

       for (int j = i + 1; j < 4; j++)

       {

           if (a[j] <= a[n])

               continue;

           n = j;

       }

       if (n != i)

       {

           int m = a[i];

           a[i] = a[n];

           a[n] = m;

       }

   }

   // складываем число из составляющих

   value = 0;

   for (int i = 0; i < 4; i++)

   {

       value *= 10;

       value += a[i];

   }

   // выводим

   printf("%d", value);

   _getch(); // экран не закрывается, пока не нажата клавиша

   return 0;

}

Приложения:
Вас заинтересует