Дана последовательность целых чисел, оканчивающаяся нулём. Определите, сколько чисел в этой последовательности равны её наибольшему элементу. Ноль числом последовательности не считается.
Формат входных данных
Вводится не более чем 10000 целых чисел, каждое из которых не превосходит по модулю 2^15−1. После последнего числа вводится 0.
Формат выходных данных
Требуется вывести количество чисел, равных максимуму.
Примечания
Использовать массивы ЗАПРЕЩЕНО!
Примеры
входные данные
1
7
9
0
выходные данные
1
входные данные
1
3
3
1
0
выходные данные
2
Другие языки программирования и технологии
Количество максимальных (C++) как решить без массивов?
#include <iostream>
using namespace std;
class Sequence {
public:
explicit Sequence(const short terminator = 0)
: terminator_(terminator), max_(numeric_limits<short>::min(), 0u) {}
bool add(const short value) {
if (max_.first < value) {
if (value == terminator_) return false;
max_.first = value;
max_.second = 1;
} else if (max_.first == value) {
++max_.second;
}
return true;
}
auto max()const {
return max_;
}
private:
short terminator_;
pair<short, size_t> max_;
};
int main() {
Sequence seq;
short value;
do cin >> value; while (seq.add(value));
const auto result = seq.max();
cout << '\n' << result.second << '\n';
system("pause");
}
using namespace std;
class Sequence {
public:
explicit Sequence(const short terminator = 0)
: terminator_(terminator), max_(numeric_limits<short>::min(), 0u) {}
bool add(const short value) {
if (max_.first < value) {
if (value == terminator_) return false;
max_.first = value;
max_.second = 1;
} else if (max_.first == value) {
++max_.second;
}
return true;
}
auto max()const {
return max_;
}
private:
short terminator_;
pair<short, size_t> max_;
};
int main() {
Sequence seq;
short value;
do cin >> value; while (seq.add(value));
const auto result = seq.max();
cout << '\n' << result.second << '\n';
system("pause");
}
Амангазы Дыбысов
можно попроще код, просто такое еще не проходил:)
#inсludе <iоstrеаm>
using nаmеsрасе std;
int mаin() {
int соunt = 1, mах, х;
сin >> х;
mах = х;
dо {
сin >> х;
if (х > mах) {
mах = х;
соunt = 1;
} еlsе if (х == mах)
соunt++;
}whilе (х);
соut << "Мах = " << mах << "; Соunt = " << соunt;
сin.gеt();
rеturn 0;
}
using nаmеsрасе std;
int mаin() {
int соunt = 1, mах, х;
сin >> х;
mах = х;
dо {
сin >> х;
if (х > mах) {
mах = х;
соunt = 1;
} еlsе if (х == mах)
соunt++;
}whilе (х);
соut << "Мах = " << mах << "; Соunt = " << соunt;
сin.gеt();
rеturn 0;
}
Амангазы Дыбысов
Тест #21
Input
пусто
Correct
10000
Output
1
Checker
wrong answer expected 10000, found 1
Input
пусто
Correct
10000
Output
1
Checker
wrong answer expected 10000, found 1
#include < iostream >
#include < string >
#include < sstream >
using namespace std;
void main()
{
setlocale(LC_ALL, "rus");
cout << "Введите последовательность чисел, между коими пробелы ";
string str;
getline(cin, str);
stringstream ss(str);
stringstream sd(str);
int max = 0;
bool b = false;
for (; ss;)
{
int t;
ss >> t;
if (t == 0)
break;
if (!b)
max = t;
if (t > max)
max = t;
b = true;
}
unsigned sum = 0;
for (; sd;)
{
int t;
sd >> t;
if (t == 0)
break;
if (t == max)
++sum;
}
cout << "Количество элементов последовательнисти по значению равных максимальному " << sum << endl;
cin.get(); cin.get();
}
#include < string >
#include < sstream >
using namespace std;
void main()
{
setlocale(LC_ALL, "rus");
cout << "Введите последовательность чисел, между коими пробелы ";
string str;
getline(cin, str);
stringstream ss(str);
stringstream sd(str);
int max = 0;
bool b = false;
for (; ss;)
{
int t;
ss >> t;
if (t == 0)
break;
if (!b)
max = t;
if (t > max)
max = t;
b = true;
}
unsigned sum = 0;
for (; sd;)
{
int t;
sd >> t;
if (t == 0)
break;
if (t == max)
++sum;
}
cout << "Количество элементов последовательнисти по значению равных максимальному " << sum << endl;
cin.get(); cin.get();
}
Похожие вопросы
- Вывести на экран два максимальных элемента всех нечетных строк массива c#
- как найти количество максимальных элементов в массиве? на асемблере. на асемблере
- Задача на C++ по одномерным (статическим) массивам, помогите сделать, пожалуйста, очень надо на завтра
- c++ Borland. Найти количество не отрицательных нечетных элементов двумерного массива.
- C++. Работа со строковыми массивами.
- ПОМОГИТЕ ПОЖАЛУЙСТА!! ИНФОРМАТИКА!! РЕШИТЬ ЧЕРЕЗ МАССИВ!!!
- Каким образом в c++ можно передать двумерный массив в фунцкию?
- C почему у меня массив на 4 символа, а я ввожу 10 например, и он потом выводит 10 из этого массива, вот мой код:
- C# программа с байтами, массивами и циклами
- Найти максимальный и минимальный элемент в массиве и поменять их местами. С++