С++. Напишите программу, которая находит количество элементов, равных максимальному. Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . Программа должна вывести два числа, разделив их пробелом: максимальный элемент массива и количество элементов массива, равных максимальному. Без массивов
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;
}
пж помоги
недочет в этом long long* array=new long long[N];
нет. я тебе уже сказал. читай: первая строка содержит размер массива N. ты пропускаешь это и программа работает не так, как хотелось
введи 5 1 3 3 1 0 и будет тебе счастье
окей, если тебя смущает динамическое создание массива, знамени строку в своем последнем комменте на long long array[10001]
но даже здесь при вводе 1 3 3 1 0 программа считывает первое число 1, а это размер массива, соответственно заносит в него только следующую цифру 3
естественно она наибольшая и одна
пж посмотри вопрос который я задал в этом аккаунте
я там подробности добавил
реши пж
Вас заинтересует
2 года назад
3 года назад
3 года назад
8 лет назад
8 лет назад
9 лет назад