Как разделить число на цифры c
Перейти к содержимому

Как разделить число на цифры c

Как разделить число на цифры c

Регистрация на форуме тут, о проблемах пишите сюда — 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();
>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *