Как разбить число на цифры и вывести в консоль без массивов? - C (СИ)
Формулировка задачи:
Подскажите алгоритм.
Решение задачи: «Как разбить число на цифры и вывести в консоль без массивов?»
textual
Листинг программы
- #include <stdio.h>
- #define HELLO_WORLD_FEST_DETECTED 1
- void print_by_digits(unsigned n) {
- if ( n > 9 )
- print_by_digits(n / 10);
- printf("%u ", n % 10);
- }
- int main(void) {
- unsigned n;
- while ( printf("\nNumber: ") > 0 && scanf("%u", &n) == 1 && printf("By digits: ") > 0 )
- print_by_digits(n);
- return 0;
- }
Объяснение кода листинга программы
В этом коде:
- Определена функция
print_by_digits
, которая принимает целое число в качестве аргумента. - Внутри функции
print_by_digits
выполняется проверка: если число больше 9, то вызывается рекурсивно функцияprint_by_digits
с аргументом, равным частному от деления исходного числа на 10. - Потом выполняется команда
printf
для вывода остатка от деления исходного числа на 10. - В функции main создается переменная
n
типаunsigned
, которая используется для хранения введенного числа. - В цикле пользователю предлагается ввести число, а затем вызывается функция
print_by_digits
для печати этого числа, разбитого на цифры. - По завершении цикла функция
main
возвращает 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д