Перейти к содержимому

Как найти максимальное число в с

  • автор:

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

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

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

Отслеживать
48.4k 5 5 золотых знаков 22 22 серебряных знака 57 57 бронзовых знаков
задан 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
48.4k 5 5 золотых знаков 22 22 серебряных знака 57 57 бронзовых знаков

а почему во втором 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; и так далее, но зачем? 🙂

22 мая 2021 в 21:11

    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

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

Определить какое из трех введенных пользователем чисел максимальное и вывести его на экран.

Пример выполнения программы

Введите три числа: 23 54 14 Максимальное из них: 54

Решение задачи на языке Паскаль

var n1, n2, n3, max: integer; begin write('Введите три числа: '); readln(n1, n2, n3); if n1 > n2 then max := n1 else max := n2; if n3 > max then max := n3; writeln('Максимальное из них: ', max); end.

Пусть числа, которые вводит пользователь, присваиваются переменным n1 , n2 , n3 . Введем четвертую переменную max , в которую по ходу выполнения кода будет помещено найденное максимальное значение. Тогда алгоритм решения задачи можно свести к следующему:

  1. Сравнить первое и второе число ( n1 и n2 ). Переменной max присвоить значение переменной, содержащей большее значение.
  2. Сравнить значение переменной max с третьим числом ( n3 ). Если значение n3 окажется больше, чем max , то присвоить max значение третьего числа. Если же значение max окажется больше, то ничего не делать.

Другой способ решения задачи — сразу предположить, что первая переменная содержит максимальное число, и присвоить его переменной max . Далее, сравнивая значение max со значениями двух других переменных, будем менять max только в том случае, если второе или третье числа больше того значения, которое содержится в max .

var n1, n2, n3, max: integer; begin write('Введите три числа: '); readln(n1, n2, n3); max := n1; if n2 > max then max := n2; if n3 > max then max := n3; writeln('Максимальное из них: ', max); end.

Л2Ш_июнь

Поиск максимального значения в массиве и его номера

Ранее мы проводили поиск наибольшей и наименьшей цифры натурального числа. Все, что рассматривали, применимо к массиву.

Заведем переменную, в которой будем хранить максимальное значение.
В качестве начального значения присвоим этой переменной значение a[0].
Будем просматривать элементы массива по порядку и сравнивать с максимальным и, если значение какого-то элемента будет больше максимального, запомним это значение.

Задача 1. Дан массив целых чисел А, размер массива n не превосходит 100. Найти и вывести максимальное значение элементов массива.

#include int main() < int n, a[100], i, max; // max - в этой переменной будем хранить максимальное значение scanf("%d", &n); //вводим количество элементов for(i = 0 ; i < n ; i++) scanf("%d", &a[i]); //заполняем массив с клавиатуры поэлементно max = a[0]; //начальное значение переменной for(i = 1 ; i < n ; ++i) //просматриваем по порядку элементы массива (с 1-го, т.к. 0-й уже взяли) < if (a[i] >max) < max = a[i]; //нашли большее значение, меняем максимальное >> printf("%d", max); //печатаем результат поиска return 0; >

Дальше будем рассматривать только фрагмент программы с поиском максимального значения.

Всегда ли можно взять значение первого элемента в качестве начального?
А если есть дополнительные условия, например, максимальное должно быть четным? Или отрицательным?

Задача 2.Дан массив целых чисел А, размер массива n не превосходит 100. Найти и вывести максимальное четное значение в массиве или 1, если таких элементов нет.

max = INT_MIN; //начальное значение максимального for(i = 0 ; i < n ; ++i) //просматриваем по порядку элементы массива (с 0-го) < if (a[i] % 2 == 0) //значение элемента четное < if (a[i] >max) //нашли большее значение < max = a[i]; //меняем максимальное >> if (max == INT_MIN) printf("1"); else printf("%d", max);

Задача 3. Дан массив целых чисел А, размер массива n не превосходит 100. Найти и вывести номер максимального значения, если таких несколько — первого встретившегося.

Вернемся к поиску максимального значения без дополнительных условий. Заведем еще одну переменную для хранения номера максимального элемента. Каждый раз, когда мы будем изменять максимальное значение, будет меняться и номер максимального значения.

int max = a[0]; //начальное значение максиммального int nummax = 0; //номер максимального значения for(i = 1 ; i < n ; ++i) //просматриваем по порядку элементы массива (с 1-го, т.к. 0-й уже взяли) < if (a[i] >max) < max = a[i]; //нашли большее значение, меняем максимальное nummax = i; //запоминаем его номер >> printf("%d", nummax);

Можно ли обойтись меньшим количеством переменных?
Можно. По номеру элемента всегда можно узнать его значение.

int nummax = 0; //номер максимального значения for(i = 1 ; i < n ; ++i) < if (a[i] >a[nummax]) < nummax = i; //запоминаем номер нового максимального >> printf("%d", nummax);

*В некоторых задачах нумерация элементов идет с единицы.
Просто корректируйте вывод, например, выводите (найденное_значение + 1).

Как найти максимальное число в массиве java

В Java 8 и выше можно использовать потоки streams для нахождения максимального числа в массиве. Для этого можно использовать метод max() класса java.util.stream.IntStream , который возвращает максимальное значение в потоке.

int[] numbers = 10, 20, 30, 40, 50>; int max = Arrays.stream(numbers).max().getAsInt(); System.out.println("Максимальное число: " + max); 

Здесь мы создаем поток из массива numbers с помощью метода Arrays.stream() , а затем вызываем метод max() для нахождения максимального значения. Метод max() вернет объект OptionalInt , поэтому мы вызываем метод getAsInt() для получения примитивного значения int

05 апреля 2023

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

public static int findMax(int[] arr)  int max = arr[0]; // начальное значение максимального элемента for (int i = 1; i  arr.length; i++)  if (arr[i] > max)  max = arr[i]; > > return max; > 

Этот метод принимает в качестве аргумента массив arr и возвращает максимальный элемент в массиве. Вы можете вызвать этот метод и передать ему ваш массив для нахождения максимального значения.

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

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