
На с++ пожалуйста, и как-нибудь попроще и без вектора Подсчитайте за один проход массива, сколько
его элементов равны максимальному элементу. Входные данные На вход программе сначала подается значение n100 — количество элементов в массиве. В следующей строке входных данных расположены сами элементы массива — целые числа, по модулю не превосходящие 30 000. Выходные данные Выдайте количество искомых элементов массива. Примеры входные данные 8 4 3 5 2 5 1 3 5 выходные данные 3

Ответы на вопрос

int n100[5] = {1,2,3,4,5};
int i = 0, j = 0, x = 0;
for(i = 0; i < 5; i++){
if(n100[5]>x){
x=n100[i]; }
else{
if(n100[i]=x){
j++; }
}
cout << j;
Не запускал. Мысль проста, один цикл, за обход ищем максимальное иначе равное максимальному.



Насколько я понял n должна быть меньше или равна 100, верно? Тогда вот, он, может и не самый эффективный, но довольно понятный и работающий.
#include <iostream>
using namespace std;
int main(){
int n,maks,schetchik; /* n - это количество элементов массива, maks - думаю, знаешь, schetchik - высчитывает количество повторений максимального числа в массиве */
cin >>n;
if(n<=100){
int a[n]; /*обьявляем количество эелементов массива и проверяем, чтобы его количество было меньше или равно 100*/
for(int i=0;i<n;i++){ /*цикл for обьявляет переменную i, далее делая её текущим индексом элемента массива */
cin >> a[i];
if (a[i]>-30000 && a[i]<30000){ /* проверка условия, данного задачей
*/
if(i==0){maks=a[i]; schetchik =1;}; /* особая разработка автора, максимальным элементом массива становиться самый первый элемент (ну по крайней мере, я ни у кого не видел) */
if (i!=0 && maks == a[i]) {schetchik +=1;}; /* и ещё одна моя собственная разработка, проверка, не является ли элемент массива первым, а так же если он равен максимальному, то счетчик увел. на 1 */
if (maks<a[i]) {maks = a[i]; schetchik = 1; }; /* а тут мы проверяем на то, не являеться ли текущий массив большим чем максимальный, если да, то счет сбрасывается и макс. равняется текущему числу */
}
}
cout << schetchik; } //ну и вывод числа, всё довольно просто
}



Вот простая программа на C++, которая решает вашу задачу без использования вектора:
cpp#include <iostream>
int main() {
int n;
std::cin >> n;
int maxElement = -30000; // Начальное значение для максимального элемента
int countMax = 0; // Счетчик максимальных элементов
for (int i = 0; i < n; ++i) {
int num;
std::cin >> num;
if (num > maxElement) {
maxElement = num;
countMax = 1; // Найден новый максимальный элемент
} else if (num == maxElement) {
countMax++; // Найдено еще одно вхождение максимального элемента
}
}
std::cout << countMax << std::endl;
return 0;
}
Эта программа считывает количество элементов n
, затем считывает сами элементы массива и подсчитывает количество элементов, равных максимальному элементу.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili