Наибольший элемент
Дан массив. Выведите значение наибольшего элемента в массиве. Вот с такой элементарной задачей я столкнулся, при изучении плюсов.
ВХОДНЫЕ ДАННЫЕ
Программа получает на вход число N, в следующей строке дано N чисел — элементы массива.
ВЫХОДНЫЕ ДАННЫЕ
Программа должна вывести значение наибольшего элемента массива.
пример
ввод
5
1 2 3 2 1
вывод
3
#include <vector>
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n, a, maxx;
cin >> n;
vector <int> num;
maxx = pow(-10, 9);
for (int i = 0; i < n; i++)
{
cin >> a;
num.push_back(a);
}
for (int i = 0; i < n; ++i) {
if (num[i] > maxx) {
maxx = num[i];
}
}
cout << maxx;
}
Программа проходит 17 из 21 одного теста и я никак не могу понять где ошибка.
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
maxx = pow(-10, 9);
так делать очень нехорошо, в тесте могут дать число и меньше -1.000.000.000
используйте std::numeric_limits<int>::min() или INT_MIN или 0xFFFFFFFF
а касательно вашего кода можно сделать и попроще:
for (int i = 0; i < n; i++)
{
cin >> a;
num.push_back(a);
}
int maxx = num[0]; // первый элемент - максимальный, а дальше - посмотрим
for (int i = 1; i < n; ++i) {
if (num[i] > maxx) {
maxx = num[i];
}
}
cout << maxx;
P.S.
и я бы учел (для теста), если вводят n < 1 :)