#include <iostream>
#include <vector>
using namespace std;
// глобальные переменные
const int arraySize = 10;
vector <int> numbers;
// сам алгоритм.
void result(){
// совет - обьявляй все переменные в начале функции
int leader = 0;
int maxCount = 0;
int count = 0;
// поиск самого частого числа
for (int c = 0; c < 9;c++){
// обнуляем счетчик
count = 0;
for (int c1 = 0;c1 < arraySize;c1++){
if (numbers[c1] == c) count++;
}
// проверка на лидера
if (maxCount < count){
leader = c;
maxCount = count;
}
}
// ну..с посмотрим:
cout << "Leader: " << leader << " (" << maxCount << ") " << std::endl;
}
int main()
{
// подготовка масива
srand(time(NULL)); // обнулем внутрений таймер для полного рандома
for (int c = 0; c < arraySize;c++) {
numbers.push_back(rand() % 9); // заполняем масив числами
}
// посмотрим на оригинальный масив
cout << "Original array: ";
for (int c = 0;c < arraySize;c++) cout << numbers[c] << " ";
cout << std::endl;
// сортировка
result();
return 0;
}
Объяснение:
Хорошая книга по с++: Герберт Шилд - с++ базовый курс.
Поделитесь своими знаниями, ответьте на вопрос:
даю (там ещё бонусом немного) Напишите прогу на C++ Задана последовательность целых чисел a1, a2, …, an, в которой каждое число от 1 до 3 включительно. Требуется заменить в ней наименьшее количество чисел так, чтобы все числа в последовательности оказались равны между собой. Входные данные: В первой строке задано целое число n (1≤n≤106 Вторая строка содержит последовательность целых чисел a1, a2, …, an (1≤ai≤3). Выходные данные: Выведите наименьшее количество изменений, которое надо сделать, чтобы уравнять все числа в последовательности.
Код
#include <iostream>#include <vector>int main() { int n; std::vector<int> sequence; std::cin >> n; for(auto i = 0; i < n; ++i) { int number; std::cin >> number; sequence.push_back(number); } int as = 0, bs = 0, cs = 0; for (auto &el : sequence) { switch (el) { case 1: ++as; break; case 2: ++bs; break; case 3: ++cs; break; default: throw std::runtime_error("All elements shall be into [1;3] range."); } } int an_answer = std::min({bs + cs, as + cs, bs + cs}); std::cout << an_answer << std::endl; return 0;}