Ввести массив длинных целых беззнаковых чисел. определить цифру (или цифры), которая чаще всего повторялась в этих числах.С указателями
С клавиатуры ввести массив длинных целых беззнаковых чисел. определить цифру (или цифры), которая чаще всего повторялась в этих числах.
Подсказка: целесообразно создать отдельный массив, в который записывать количество повторений каждой из десятичных цифр.
Ответы (1 шт):
Почему так сложно хотя бы начать? Сейчас 20 декабря. Конец семестра. И не ужели за целый семестр ничего не выучили?
Пойдем по порядку:
Нужно создать массив под длинные целые беззнаковые числа. И тут в есть 2 варианта
Использовать статический массив.
Для начало нужно почитать про них. Вы задаёте массиву такой размер, который вряд ли будет заполнять пользователь. (Например
100или128элементов).Далее вы просите пользователя ввести кол-во чисел, которые он собирается вводить (очевидно это число должно быть строго меньше размера массива).
Использовать динамический массив.
Так же читаете про них.
Сначала вы просите пользователя ввести кол-во чисел, а далее выделяете память под введенное кол-во чисел.
Так же нужно не забыть освободить память, чтобы не было утечки.
После
1пункта у нас есть инициализированный массивarrдлиннойsize.Далее вы просите пользователя ввести
sizeчисел, которые заносите в массив. Ссылку на циклы я скидывать не буду, а то это слишком уже.Потом, как и в первом пункте вы создаёте уже точно статический массив длинной
10, напримерdigits. (т.к. цифр10).Далее самое важное вы пишите функцию, которая принимает длинное целое беззнаковое число, а так же статический массив
digits, в который после завершения работы функции, будет записаны кол-во каждой цифры.Например так:
void calcDigits(unsigned long int num, int* digits)Сама реализация функции довольна проста, очевидно я не буду писать её код вам, но подсказка нужно использовать деление с остатком на 10 для получения последней цифры, и деление на 10, чтобы перейти к следующей цифре с конца.
И самое простое это в массиве
digitsнайти максимальное числоmax_count. После чего в последний раз пройти по массивуdigitsи если элемент равенmax_count, то выводим эту цифру в консоль.
Как же просто все оказывается :)
P.S. Да мне проще было просто скинуть код, который еще до вопроса был написан, но ...