Мне нужно вывести максимальное число из динамического массива, а как это сделать я понятия не имею. Цикл for не удобен.
setlocale(LC_ALL, "ru");
cout << "Ввведите количество гор" << endl;
uint16_t size = 0;
cin >> size;
int* pointer = new int[size];
cout << "Теперь введите высоты этих гор" << endl;
for (int counter = 0; counter < size; counter++)
cin >> *(pointer + counter);
delete[] pointer;
А вы сразу, не плодя лишних циклов...
int maxval = std::numeric_limits<int>::min();
for (int counter = 0; counter < size; counter++)
{
cin >> *(pointer + counter);
if (*(pointer + counter) > maxval) maxval = *(pointer + counter);
}
cout << maxval;
Можно чуууточку проще:
int maxval = std::numeric_limits<int>::min();
for (int x, counter = 0; counter < size; counter++)
{
cin >> x;
if ((pointer[counter] = x) > maxval) maxval = x;
}
cout << maxval;
Ну, или, как я говорил в комментарии -
cout << *max_element(pointer,pointer+size);
Сразу при инициализации можете найти максимальный элемент (смотр. ответ от Harry
). А если хотите потом, то у вас же есть размер массива size
. Вот и используйте:
//так как это высота гор, то все числа положительные
int max = 0;
while (size--) {
if (max < pointer[size])
max = pointer[size];
}
cout << max;
А если дело дошло до стандартных контейнеров(такой ответ принят), то есть более оптимизированный контейнер для численных расчетов:
//вся ваша программа
int size;
cin >> size;
std::valarray<int> v(size);
for (int& i : v)
cin >> i;
cout << v.max();
Вот с применением вектора
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int> x;
for(int i=0; i<n; i++) //ввод массива
{
int t;
cin >> t;
x.push_back(t);
}
int max = x[0];
for(int y : x) //перебрать массив X
if(y > max)
max = y;
cout << endl << max;
return 0;
}
и да еще один без for :D
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int> x;
for(int i=0; i<n; i++)
{
int t;
cin >> t;
x.push_back(t);
}
int max = x[0];
int i=0;
while(i<x.size())
{
if(x[i] > max)
max = x[i];
i++;
}
cout << endl << max;
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Уже задавал сегодня похожий вопросПроблему решили
Ссылка на php скриптСкрипт нормально получает параметры version и name, но text не получается, он становится таким:
Может кто подсказать как исправить?