Как найти максимум среди четных элементов массива? С++
Помогите. Дан произвольный целочисленный массив MAS[11] , надо найти максимум среди четных элементов массива. Массив заполняется с клавиатуры.
ДополненПосле того как я проверил каждый элемент массива то получил последний четный. А надо максимальный четный. Как это сделать?
ну, идешь по массиву.
проверяешь, четный ли элемент. если четный - проверяешь, не больше ли он предыдущего найденного максимума.
метод, кстати, сработает на любом языке программирования
Можно так (с клавиатуры массив заполнять лениво) :
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
srand(time(0));
int a[11];
for (int c = 0; c < 11; ++c) std::cout << (a[c] = rand() % 100) << ' ';
int *f = find_if(a, a + 11, [](int x){ return x % 2 == 0; });
if (f != a + 11) {
cout << "\nмаксимальный четный элемент: "
<< *max_element(f, a + 11, [](int x, int y){ return y % 2 == 0 && x < y; }) << endl;
} else {
cout << "\nв массиве нет четных элементов\n";
}
}
int max = -100500;
for (i = 0; I < 11; ++i)
if (MAS[i ] % 2 == 0 && MAS[i ] > max)
max = MAS[i ];
берёшь первый элемент, сравниваешь его со вторым, какой из них больше, тот и присваиваешь к новой переменной, потом эту новую переменную сравниваешь с 3 эл-том, и больший результат записываешь на место старого.. . и т. д. ..
вроде бы, называется "метод пузырька" погугли