Напиши функцию которая найдет максимум трех чисел
Перейти к содержимому

Напиши функцию которая найдет максимум трех чисел

  • автор:

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

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

if (m1 > m2) < m1 = Mmax; >else < m2 = Mmax; >if (m2 > m3) < m2 = Mmax; >else < m3 = Mmax; >if (m3 > m1) < m3 = Mmax; >else

Отслеживать
50.2k 6 6 золотых знаков 26 26 серебряных знаков 61 61 бронзовый знак
задан 22 мая 2021 в 20:46
Nevazhno Valera Nevazhno Valera
3 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Если я правильно понял вопрос, и надо найти наибольшее из трех, то всё проще, чем кажется

max = a; if (b > a) max = b; if (c > max) max = c; 

Или с использованием тернарного оператора

max = b > a ? b : a; max = max > c ? max : c; 

Или с помощью System.Math

max = Math.Max(a, Math.Max(b, c)); 

Или с помощью System.Linq

max = new[] < a, b, c >.Max(); 

Отслеживать
ответ дан 22 мая 2021 в 20:57
50.2k 6 6 золотых знаков 26 26 серебряных знаков 61 61 бронзовый знак

а почему во втором if («max = a; if (b > a) max = b; if (c > max) max = c;») сравнивается с именно с max?

22 мая 2021 в 21:04

@NevazhnoValera а с чем еще сравнивать? Если найдено наибольшее из двух первых, то сравнивать надо третьте с ним. Можно конечно через 3 комбинированных условия решать типа if (a > b && b > c) max = a; и так далее, но зачем? 🙂

Максимум трёх чисел

Author24 — интернет-сервис помощи студентам

Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число).

Вводится три целых числа, не превосходящие 100 по абсолютному значению.

Выведите ответ на задачу.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Задача про минимум и максимум из трёх чисел
Здравствуйте, я написал программу в качестве домашнего задания. В неё вводятся 3 числа, а она в.

Написать функцию, ищущую максимум из трех чисел
Написать функцию, ищущую максимум из трех чисел.

Линейный алгоритм: найти минимум и максимум из трех чисел
даны три числа а,b,c.найти max и min этих чисел.

Если сумма трех попарно различных действительных чисел х, у , z меньше единицы, то наименьшее из этих трех чисел заменит
Если сумма трех попарно различных действительных чисел х, у , z меньше единицы, то наименьшее из.

Регистрация: 18.03.2020
Сообщений: 6

1 2 3 4 5
a, b, c = int(input()), int(input()), int(input()) if a > b: print(a) if a > c else print(c) else: print(b) if b > c else print(c)

Регистрация: 16.03.2020
Сообщений: 58

В условии задачи есть ограничение( поэтому не проходит.

Используйте ровно два оператора сравнения (>, =, <=) для решения этой задачи.

1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305

Лучший ответ

Сообщение было отмечено PIROTEXNIK как решение

Решение

это классический алгоритм

1 2 3 4 5 6 7
a, b, c = int(input()), int(input()), int(input()) mx = a if b > mx: mx = b if c > mx: mx = c print(mx)

Регистрация: 16.03.2020
Сообщений: 58
Спасибо, очень помогли!

Эксперт функциональных языков программированияЭксперт Python

36627 / 20351 / 4225
Регистрация: 12.02.2012
Сообщений: 33,691
Записей в блоге: 13
PIROTEXNIK, когда тебе помогают, нажимай «+1 спасибо»
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Минимум и максимум из трех чисел
Напишите программу, которая выбирает максимальное и минимальное из трёх введённых чисел. Входные.

Найти максимум из девяти чисел(максимум из трех чисел(максимум из двух чисел)
Сделал кароч ток не знаю что в конце писать вот код: function maks_2(a,b:real):real; begin if.

Найти максимум из девяти чисел (максимум из трех(максимум из двух)
Найти максимум из девяти чисел (максимум из трех(максимум из двух))

Минимум и максимум из трех чисел
Напишите программу, которая выбирает максимальное и минимальное из трёх введённых чисел.Входная.

Минимум и максимум из трёх чисел
Задача : "Напишите программу, которая выбирает максимальное и минимальное из трёх введённых чисел.".

Минимум и максимум из трех чисел
Задача №112156. Минимум и максимум из трех чисел Напишите программу, которая выбирает максимальное.

Или воспользуйтесь поиском по форуму:

Как найти максимум из трёх чисел, используя this?

Создайте класс, который находит наибольшее из трех чисел.
Ко всем переменным можно обращаться, ТОЛЬКО используя this . Не пойму, как здесь использовать this ? Вот моя попытка:

public class class4 < public static void main(String[] args) < MaxOf3Num maxOf3Num = new MaxOf3Num(); int x = 3; int y = 8; int z = 4; maxOf3Num.findMax(x,y,z); 
public class MaxOf3Num < int a; int b; int c; void findMax (int a, int b, int c) < if (a >b && a > c) < System.out.println( a); >else if (b > c) < System.out.println( b); >else

Отслеживать
16.2k 34 34 золотых знака 20 20 серебряных знаков 29 29 бронзовых знаков
задан 7 сен 2023 в 16:33
HardGainer88 HardGainer88
1 1 1 бронзовый знак

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Предположу, что нужно сделать конструктор, который принимает a , b , c и раскидывает по соотвесттвующим переменным. А метод findMax будет без аргументов и обращение внутри метода будет через this.a , this.b , this.c

Отслеживать
ответ дан 7 сен 2023 в 16:58
Алексей Шиманский Алексей Шиманский
73.7k 12 12 золотых знаков 93 93 серебряных знака 182 182 бронзовых знака

В представленной вами реализации метод findMax не использует соответствующие поля класса MaxOf3Num , которые к тому же нигде в коде не инициализируются. Поэтому сравнение выполняется для параметров указанного метода, и в худшем случае будут использоваться три операции сравнения, хотя поиска максимума трёх чисел достаточно двух сравнений.

Также для данного метода в представленной реализации больше подходит название printMax , так как он вместо возврата требуемого максимума просто печатает его.

С учётом вышесказанного, код класса MaxOf3Num следует переписать, как указал @Алексей Шиманский в своём ответе:

  • "спрятать" переменные и потребовать их обязательной инициализации, использовав private final
  • добавить конструктор для обязательной инициализации полей класса (будет использоваться this )
  • реализовать метод без параметров ( this использовать необязательно, так как в данном контексте метод и так будет обращаться к соответствующим полям класса)
public class MaxOf3Num < private final int a, b, c; // конструктор с обязательными аргументами public MaxOf3Num(int a, int b, int c) < this.a = a; this.b = b; this.c = c; >// два сравнения public int findMax() < int max = a >b ? a : b; return c > max ? c : max; > public int findMax2() < return Math.max(Math.max(this.a, this.b), this.c); // this необязательно >> 

Тогда поиск максимума будет выглядеть так:

System.out.println(new MaxOf3Num(3, 8, 4).findMax()); // 8 

Помогите, пожалуйста, с питоном.

Задача 2. Функция максимума
Юра пишет различные полезные функции для Питона, чтобы остальным программистам стало проще работать. Он захотел написать функцию, которая будет находить максимум из перечисленных чисел. Функция для нахождения максимума из двух чисел у него уже есть. Юра задумался: может быть, её можно как-то использовать для нахождения максимума уже от трёх чисел?
Напишите программу, которая находит максимум из трёх чисел. Для этого используйте только функцию нахождения максимума из двух чисел.

Голосование за лучший ответ

def max_3(a, b, c):
return max( max(a, b), max(b, c) )

Юра - плохой программист. Искусственно ограничивать функцию 3-мя параметрами - плохо.

Американ ЭкспрессУченик (56) 3 года назад
спасибо, но можно без использование функции max

Elepsis Eclipse Гений (64288) Американ Экспресс, можно, def max_2(a, b): return a if a > b else b def max_3(a, b, c): return max_2( max_2(a, b), max_2(b, c) )

Американ ЭкспрессУченик (56) 3 года назад
оо, спасибо большое
Сергей ДубовцевЗнаток (391) 2 года назад

def max_2(a, b):
if a > b:
return a
return b

def max_3(a, b, c):
return max_2( max_2(a, b), c)

a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))
c = int(input('Введите третье число: '))
print('Максимальное число: ', max_3(a, b, c))

a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
c = float(input("Введите третье число: "))

x = (a >= b) * a + (a < b) * b
y = (x >= c) * x + (x < c) * c

СУДСНАБ-СОЧИЗнаток (298) 2 года назад
Решение подразумевается с помощью функции

def maximum(a, b, c):
max2 = (a + b + abs(a - b)) // 2
return (max2 + c + abs(max2 - c)) // 2

a = int(input('ваше первое число: '))
b = int(input('ваше второе число: '))
c = int(input('ваше третье число: '))
print('Максимальное число из трех равно', maximum(a, b, c))

Ирина ХалиуллинаУченик (117) 2 года назад

def max2(a, b):
return a if a > b else b

def max3(a,b,c):
return max2(max2(a, b),c)

a = int(input('ваше первое число: '))
b = int(input('ваше второе число: '))
c = int(input('ваше третье число: '))

print('Максимальное число из трех равно', max3(a, b, c))

Lion71Знаток (308) 2 года назад

Там в задании еще условие было такое: в программе должны быть реализованы две функции:
maximum_of_two — функция принимает два числа и возвращает одно (наибольшее из двух); maximum_of_three — функция принимает три числа и возвращает одно (наибольшее из трёх); при этом она должна использовать для сравнений первую функцию maximum_of_two.
я так решил:

def max_2(a, b):
return max(a, b)

def max_3 (a, b, c):
y = max_2(a, b)
return max_2(y, c)

print('Сколько чисел будем сравнивать? \nВведите 2 если Два \nВведите 3 если Три')
n = int(input())
if n == 2:
a = int(input('Введите число 1: '))
b = int(input('Введите число 2: '))
print('максимум из двух чисел: ', (max_2(a, b)))
elif n == 3:
a = int(input('Введите число 1: '))
b = int(input('Введите число 2: '))
c = int(input('Введите число 3: '))
print('максимум из трёх чисел: ', max_3(a, b, c))
else:
print("Некорректный ввод.")

def maximum_of_two(number_1, number_2):
if number_1 > number_2:
return number_1
else:
return number_2

def maximum_of_three(max_number, number_3):
if max_number > number_3:
return max_number
else:
return number_3

number = [int(input('Введите число: ')) for i in range(3)]
number_1 = number[0]
number_2 = number[1]
number_3 = number[2]

max_number = maximum_of_two(number_1, number_2)
print('Максимальное число:', maximum_of_three(max_number, number_3))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *