Информатика, вопрос задал 380966683969 , 6 лет назад

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;

}

Приложения:
Новые вопросы