Как разбить число на цифры и вывести в консоль без массивов? - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Определена функция print_by_digits, которая принимает целое число в качестве аргумента.
  2. Внутри функции print_by_digits выполняется проверка: если число больше 9, то вызывается рекурсивно функция print_by_digits с аргументом, равным частному от деления исходного числа на 10.
  3. Потом выполняется команда printf для вывода остатка от деления исходного числа на 10.
  4. В функции main создается переменная n типа unsigned, которая используется для хранения введенного числа.
  5. В цикле пользователю предлагается ввести число, а затем вызывается функция print_by_digits для печати этого числа, разбитого на цифры.
  6. По завершении цикла функция main возвращает 0, что означает успешный конец работы программы.

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы