m1=0
m2=0
m3=0
x=10
while x!=0:
x=int(input())#вводим число
if m1<x:
m3=m2
m2=m1
m1=x
elif x>m2 and x>m3 and x<m1:
m3=m2
m2=x
elif x<m2 and x<m1 and x>m3:
m3=x
print(m1,m2,m3,sep=" ")
вот std алгоритм заключается в том что у нас три переменных и мы после нахождения максимума все переменные сдвигаем назад то есть m1 становится m2, m2 становится m3 а m1 присваивается новый максимум и так же тут случаи когда m2 или m3 больше старых но мешьше m1 он тогда просто меняет значение именно той переменной которой он больше
using System;
namespace ConcoleApplication
{
class Program
{
enum CardinalPoints //Стороны света
{
North,
West,
South,
East
}
public static int Convert(int a)//Перевод команды(сделал для удобства)
{
if (a == -1)
return 3;
if (a == 1)
return 1;
return 2;
}
public static void Main()
{
var n1 = int.Parse(Console.ReadLine());
var n2 = int.Parse(Console.ReadLine());
n1 = Convert(n1);
n2 = Convert(n2);
var point = (n1 + n2) % 4;
switch ((CardinalPoints) point)//Вывод ответа
{
case CardinalPoints.East:
Console.WriteLine("Восток");
break;
case CardinalPoints.South:
Console.WriteLine("Юг");
break;
case CardinalPoints.West:
Console.WriteLine("Запад");
break;
case CardinalPoints.North:
Console.WriteLine("Север");
break;
}
}
}
}
Объяснение:
Советую потестировать. Если что исправлю, самому просто лень было тестировать)
P.S. Почему по информатике? По-моему это вопрос для философии или биологии...