Предмет: Информатика, автор: entity07906

С++. Напишите программу, которая находит количество элементов, равных максимальному. Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . Программа должна вывести два числа, разделив их пробелом: максимальный элемент массива и количество элементов массива, равных максимальному. Без массивов


LymarIvan: а в чем нарушение-то??

Ответы

Автор ответа: LymarIvan
1

#include <iostream>

using namespace std;

int main() {

    int N, count=0;

    long long max;

    // создаем и заполняем массив

    cin>>N;

    long long* array=new long long[N];

    for(int i=0; i<N; i++)

        cin>>array[i];

    //находим максимальный элемент

    for(int i=0; i<N; i++)

    {

        if(i==0)

            max=array[i];

        else if(array[i]>max)

            max=array[i];

    }

    //считаем элементы, равные максимальному

    for(int i=0; i<N; i++)

        if(array[i]==max)

            count++;

    //выводим результат

    cout<<max<<" "<<count;

}


nshamakov2610: пж помоги
nshamakov2610: недочет в этом long long* array=new long long[N];
LymarIvan: нет. я тебе уже сказал. читай: первая строка содержит размер массива N. ты пропускаешь это и программа работает не так, как хотелось
LymarIvan: введи 5 1 3 3 1 0 и будет тебе счастье
LymarIvan: окей, если тебя смущает динамическое создание массива, знамени строку в своем последнем комменте на long long array[10001]
LymarIvan: но даже здесь при вводе 1 3 3 1 0 программа считывает первое число 1, а это размер массива, соответственно заносит в него только следующую цифру 3
LymarIvan: естественно она наибольшая и одна
nshamakov2610: пж посмотри вопрос который я задал в этом аккаунте
nshamakov2610: я там подробности добавил
nshamakov2610: реши пж
Похожие вопросы