Найти максимальное число из трех

Задача

Вводятся три целых числа. Определить какое из них наибольшее.

Пояснение к задаче и алгоритм решения

Пусть a, b, c - переменные, которым присваиваются введенные числа, а переменная m в конечном итоге должна будет содержать значение наибольшей переменной. Тогда алгоритм программы сведется к следующему:

  1. Сначала предположим, что переменная a содержит наибольшее значение. Присвоим его переменной m.
  2. Если текущее значение m меньше, чем у b, то следует присвоить m значение b. Если это не так, то не изменять значение m.
  3. Если текущее значение m меньше, чем у c, то присвоить m значение c. Иначе ничего не делать.

Данную задачу можно решить и без использования четвертой переменной, однако программа будет логически сложнее:

  1. Если a больше b, то проверить больше ли a, чем c. Если это так, то максимальное число содержит переменная a. Если a больше b, но при этом меньше c, то максимальным является значение c.
  2. Иначе (когда a меньше b) сравнить значения b и c. Большее из них и есть максимальное.

Исходный код на языке программирования Pascal

// 1-й способ:

var
    a,b,c,max: integer;
begin
    readln(a,b,c);
    max := a;
    if max < b then max := b;
    if max < c then max := c;
    writeln(max);
end.

// 2-й способ:

var
    a,b,c: integer;
begin
    readln(a,b,c);
    if a > b then
        if a > c then writeln(a)
        else writeln(c)
    else
        if b > c then writeln(b)
        else writeln(c);
end.

Исходный код на языке программирования C

// 1-й вариант:

#include <stdio.h>
 
main() {
    int a,b,c,m;
    scanf("%d%d%d",&a,&b,&c);
    m = a;
    if (m < b) m = b;
    if (m < c) m = c;
    printf("%d\n", m);
}

// 2-й вариант:

#include <stdio.h>
 
main() {
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
 
    if (a > b)
        if (a > c) printf("%d\n", a);
        else printf("%d\n", c);
    else
        if (b > c) printf("%d\n", b);
        else printf("%d\n", c);
}

Исходный код на языке программирования Python

# 1-й вариант:

a = int(input())
b = int(input())
c = int(input())
 
m = a
if m < b:
    m = b
if m < c:
    m = c
 
print(m)

# 2-й вариант:

a = int(input())
b = int(input())
c = int(input())
 
if a > b:
    if a > c:
        print(a)
    else:
        print(c)
else:
    if b > c:
        print(b)
    else:
        print(c)

Исходный код на языке программирования КуМир

| 1-й вариант:

алг максимум из трех
нач
  цел a, b, c, m
  ввод a, b, c
  m := a
  если b > m то m := b все
  если c > m то m := c все
  вывод m
кон

| 2-й вариант:

алг максимум из трех
нач
  цел a, b, c
  ввод a, b, c
  если a > b то
    если a > c то
      вывод a
     иначе
      вывод c
    все
   иначе
    если b > c то
      вывод b
     иначе
      вывод c
    все
  все
кон

Исходный код на языке программирования Basic

# 1-й вариант:

input a
input b
input c
max = a
if max < b then max = b
if max < c then max = c
print max

# 2-й вариант:

input a
input b
input c
if a > b then
        if a > c then
                print a
        else
                print c
        endif
else
        if b > c then
                print b
        else
                print c
        endif
endif

Тема

Ветвления

Уровень сложности

Простой

Дата публикации

Комментарий

3-й вариант
самый простой

a = int(input('1 - '))
b = int(input('2 - '))
c = int(input('3 - '))
if a > b > c:
    print (a)
elif b > a > c:
    print (b)
else:
    print (c)

Ответ на от pachenko

a = int(input("Введите число 1:"))
b = int(input("Введите число 2:"))
c = int(input("Введите число 3:"))
if a > b and a > c:
  print("Максимальное "+str(a))
elif b > c and b > a:
  print("Максимальное "+str(b))
else:
  print("Максимальное "+str(c))

По-моему, самый простой для понимания. По-человечески.

int a, y, o;
scanf("%d%d%d", &a,&y,&o);
    if(a>y && a>o)
        printf("%d - max", a);
    else if(y>a && y>o)
        printf("%d - max", y);
    else if(o>a && o>y)
        printf("%d - max", o);