На с++ и нетрудно, пожалуйстаПодсчитайте за один проход массива, сколько его

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

Входные данные
На вход программке поначалу подается значение n100 количество элементов в массиве. В следующей строке входных данных размещены сами элементы массива целые числа, по модулю не превосходящие 30 000.

Выходные данные
Выдайте количество искомых частей массива.

Образцы
входные данные
8
4 3 5 2 5 1 3 5
выходные данные
3

Задать свой вопрос
2 ответа

include lt;iostreamgt;

int main()

int *arr, size, max = -30000, nMax = 0;

std::cin gt;gt; size;

arr = new int[size];

for (int i = 0; i lt; size; i++)

std::cin gt;gt; arr[i];

if (arr[i] gt; max)

max = arr[i], nMax = 1;

else if (arr[i] == max)

nMax++;

std::cout lt;lt; nMax;

delete[] arr;

return 0;

include lt;iostreamgt;

using namespace std;

int main()

int n,maks,schetchik;

cin gt;gt;n;

if(nlt;=100)

int a[n];

for(int i=0;ilt;n;i++)

cin gt;gt; a[i];

if (a[i]gt;-30000 amp;amp; a[i]lt;30000)

if(i==0)maks=a[i]; schetchik =1;;

if (i!=0 amp;amp; maks == a[i]) schetchik +=1;;

if (makslt;a[i]) maks = a[i]; schetchik = 1; ;

cout lt;lt; schetchik;

Злата Кирнякова
Как ты создашь массив int a[n], если n не является константой? Здесь либо динамически память выделить необходимо, либо сразу на все 100 эл-тов.
Женя Атаринов
Переменная n не меняется во время работы всего массива, а означает ошибку это не вызывает. Да и я проверял свой код на CodeBlocks, и он нормально работал
Marija Langner
Обычный компилятор дозволяет творить на стадии компиляции массивы только константных размеров, т.к. эти компиляторы однопроходные и они не выслеживают, изменяется ли переменная. Они лишь глядят её тип и он обязан быть const. Стандартный синтаксис языка не позволяет сделать так, как сделали Вы.
Вован Толкач
А вы пробовали запускать на, как вы произнесли, "обычных" компиляторах этот код? Жду результата
Инна Курабко
(только возвратился в город, потому с задержкой...) Да, будет ошибка. В Visual Studio. Код: E0028, описание: expression must have a constant value. Т.е. не допускается творенье статических массивов, размерность которым задётся не постоянной переменной. Связано это, как я теснее разговаривал, с тем, что "серьёзные" компиляторы исполняют один проход и не проверяют, меняется ли переменная дальше либо нет.
Koljan Izbudushhev
Тогда хорошо. Виноват, буду внимательнее
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт