Как разбить число на цифры и вывести в консоль без массивов? - 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, что означает успешный конец работы программы.