#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;
}
Объяснение:
Хорошая книга по с++: Герберт Шилд - с++ базовый курс.
ответ:
объяснение:
достаточно часто требуется уметь переводить число из одной системы счисления в другую. давайте научимся выполнять такое действие. преобразование целых чисел и правильных дробей выполняется по разным правилам. в действительном числе преобразование целой и дробной части производят по отдельности.
преобразование целых чисел
для перевода необходимо исходное число разделить на основание новой системы счисления до получения целого остатка, который является младшим разрядом числа в новой системе счисления (единицы). полученное частное снова делим на основание системы и так до тех пор, пока частное не станет меньше основания новой системы счисления. все операции выполняются в исходной системе счисления.
рассмотрим для примера перевод числа из десятичной системы счисления в двоичную систему счисления.
возьмём десятичное число а10 = 124 и поделим его на основание двоичной системы, то есть число 2. деление будем производить уголком:
в результате первого деления получим разряд единиц (самый младший разряд). в результате второго деления получим разряд двоек. деление продолжаем, пока результат деления больше двух. в конце операции преобразования мы получили двоичное число 002.
теперь то же самое число переведём в восьмеричную систему счисления. для этого число 12410 разделим на число 8:
как мы видим, остаток от первого деления равен 4. то есть младший разряд восьмеричного числа содержит цифру 4. остаток от второго деления равен 7. то есть второй разряд восьмеричного числа – это цифра 7. старший разряд получился равным 1. то есть в результате многократного деления мы получили восьмеричное число 1748.
проверим, не ошиблись ли мы в процессе преобразования? для этого преобразуем получившееся двоичное число в десятичную систему по обычной формуле разложения:
1×82+7×81+4×80=6410+5610+410=124
; а можно ли осуществить перевод из восьмеричной системы счисления в двоичную делением? можно! но деление нужно произвести по правилам восьмеричной арифметики. правила работы в восьмеричной системе счисления мы рассмотрим в следующей главе. тем не менее, для полноты материала, рассмотрим пример перевода в двоичную форму полученного ранее восьмеричного числа 1748. разделим его на основание новой системы счисления 2.
как мы убедились выполнять деление в восьмеричной системе неудобно, ведь подсознательно мы делим в десятичной системе счисления. давайте обратим внимание на то, что число 8 является степенью числа 2. то есть можно считать восьмеричную систему счисления просто более короткой записью двоичного числа. это означает, что для представления восьмеричной цифры можно использовать три двоичных бита (8=23). давайте составим таблицу соответствия. она в таблице 1.
таблица 1. таблица соответствия восьмеричных цифр и двоичного кода
двоичный код
восьмеричная цифра
десятичный эквивалент
000
0
0
001
1
1
010
2
2
011
3
3
100
4
4
101
5
5
110
6
6
111
7
7
используя эту таблицу можно просто заменить каждую восьмеричную цифру тремя двоичными битами. три двоичных бита обычно называют триадой или трибитом. теперь давайте переведём восьмеричное число 1748 в двоичную форму при таблицы 7:
аналогично можно выполнить перевод числа из двоичной системы в восьмеричную. для этого двоичное число разбивают на триады относительно крайнего правого разряда (или двоичной запятой) и, используя таблицу 7, каждой триаде ставят в соответствие восьмеричную цифру.
аналогичным образом можно выполнить перевод числа из шестнадцатеричной формы в двоичную и обратно. в этом случае для представления шестнадцатеричной цифры потребуется четыре двоичных разряда. четыре двоичных разряда обычно называют тетрадой. иногда при переводе иностранных книг используется термин нибл.
давайте составим таблицу соответствия двоичных тетрад и шестнадцатеричных цифр. для этого мы будем просто прибавлять единицу к значению предыдущей строки в каждом столбце таблицы, в соответствии с используемой в этом столбце системой счисления. результат в таблице 2.
в качестве примера использования таблицы 2 переведем шестнадцатеричное число 7с16 в двоичную форму представления:
таблица 2. таблица соответствия шестнадцатеричных цифр и двоичного кода
двоичный код
восьмеричная цифра
десятичный эквивалент
0
0
0001
1
1
0010
2
2
0011
3
3
0100
4
4
0101
5
5
0110
6
6
0111
7
7
1000
8
8
1001
9
9
1010
a
a
1011
b
b
1100
c
c
1101
d
d
1110
e
e
f
f
пример преобразования двоичного числа в восьмеричную и шестнадцатеричную форму на рисунке 1.
рисунок 1. пример преобразования двоичного числа в восьмеричную и шестнадцатеричную форму.
на этом рисунке внизу выделены двоичные тетрады и соответствующие им шестнадцатеричные цифры. их соответствие можно проверить при таблицы 2. сверху выделены триады и соответствующие им восьмеричные цифры. старшая триада получилась неполной. её нужно дополнить старшими незначащими нулями для того, чтобы можно было бы воспользоваться таблицей 1.