Switch и ничего больше

Предлагаю Вашему вниманию довольно интересную, с моей точки зрения, задачу по программированию.

Условие задачи:
Пользователь вводит три числа a, b и c. Необходимо вывести их на экран по убыванию. В программе использовать только один оператор switch и ничего больше.

Будет очень интересно посмотреть на ваши варианты решений. Публикуйте их в комментариях на удобном для вас языке программирования. В свою очередь, я привожу ниже свой вариант на языке C#.


using System;

namespace TestApplication
{
    static class Program
    {
        static void Main(string[] args)
        {
            int a, b, c;
            Console.WriteLine("Input a, b, c");
            a = int.Parse(Console.ReadLine());
            b = int.Parse(Console.ReadLine());
            c = int.Parse(Console.ReadLine());

            switch (Convert.ToInt32((a > b)) + 2 * Convert.ToInt32((b > c)) + 2 * Convert.ToInt32(a > c))
            {
                case 0:
                    Console.WriteLine(c + " " + b + " " + a);
                    break;
                case 1:
                    Console.WriteLine(c + " " + a + " " + b);
                    break;
                case 2:
                    Console.WriteLine(b + " " + c + " " + a);
                    break;
                case 3:
                    Console.WriteLine(a + " " + c + " " + b);
                    break;
                case 4:
                    Console.WriteLine(b + " " + a + " " + c);
                    break;
                case 5:
                    Console.WriteLine(a + " " + b + " " + c);
                    break;
            }

            Console.ReadKey();
        }
    }
}



0 коммент.:

Отправить комментарий