Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль
Поиск по форуму
Расширенный поиск
К странице.
Ваша тема закрыта, почему это могло произойти? Возможно, Нет наработок или кода, если нужно готовое решение — создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова — «Помогите», «Нужна помощь», «Срочно», «Пожалуйста». Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос — одна тема Прочитайте правила и заново правильно создайте тему.
Изучаю С по книге дейтеля,в одном из упражнений стоит сл. задача: Написать программу,которая считывает число из 5 цифр,разделяет это число на отдельные цифры и выводит эти цифры отделя пробелами. напр если ввели 45612 то вывести должно 4 5 6 1 2.
Все задания выполнил кроме этого,понимаю что метод есть в книге,но пересматривая главу так и не нашёл как. Всё что я смог:
а вот что здесь должно быть? Т.к. этот оператор просто вывводит то же число
Как разбить int на его цифры?
Как я могу разделить int в c++ на его отдельные числа? Например, я хотел бы разделить 23 на 2 и 3.
15 ответов
учитывая число 12345:
5 is 12345 % 10 4 и 12345 / 10 % 10 3 is 12345 / 100 % 10 2 is 12345 / 1000 % 10 1 и 12345 / 10000 % 10
Я не буду приводить полный код, как это, безусловно, выглядит как домашнее задание, но я уверен, что вы получите картину.
экстрактор цифр обратного порядка (например . на 23 будет 3 и 2):
экстрактор цифр нормального порядка (например . на 23 будет 2 и 3):
бросьте его в строку или char[] и петлю на нем
следующее сделает трюк
классический трюк-использовать по модулю 10: x%10 дает вам первую цифру (т. е. цифру единиц). Для других вам нужно сначала разделить (как показано на многих других сообщениях)
вот небольшая функция, чтобы получить все цифры в вектор (что вы, похоже, хотите сделать):
простой ответ на этот вопрос может быть: 1) Прочитайте число » n » от пользователя. 2) Использование Цикла While Убедитесь, Что Он Не Равен Нулю. 3) взять модуль 10 числа «n»..Это Даст Вам Последнюю Цифру. 4) Затем разделите число » n » на 10..Это удаляет последнюю цифру числа «n», так как в int десятичная часть опущена. 5)Показать Номер.
Я Думаю, Это Поможет. Я Использовал Простой Код, Например:
объявите массив и сохраните отдельные цифры в массиве, как это
начните с наивысшей мощности десяти, которая вписывается в int на вашей платформе (для 32-разрядной int : 1.000.000.000) и выполнить целочисленное деление на нем. В результате получается самая левая цифра. Вычтите этот результат, умноженный на делитель, из исходного числа, затем продолжите ту же игру со следующей меньшей мощностью десять и повторяйте до тех пор, пока не достигнете 1.
вы можете просто использовать последовательность операций x/10.0 f и std::floor, чтобы иметь «математический подход». Или вы также можете использовать boost::lexical_cast(the_number) для получения строки, а затем вы можете просто сделать the_string.c_str () [i] для доступа к отдельным символам («строковый подход»).
Я не обязательно рекомендую это (более эффективно работать с числом, а не преобразовывать его в строку), но это легко, и это работает:)
Разбиение числа на языке СИ
Существует ли функция разбиения числа на составляющие цифры?
Существует число 1736 Нужно его разбить на состовляющие цифры 1, 7, 3, 6 и занести в массив ( можно даже в символьном виде ) С помощью какой функции можно это сделать?
#include <stdio.h> #include <conio.h>
main() < int A[100], x, k, j = 0; scanf(«%d», &x); while (x > 0) < A[j++] = x % 10; x/= 10; > for (k = j-1; k >= 0; k—) printf(«%d «, A[k]); getch(); >