Вывести поочередно каждый из разрядов числа - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Уже долго ломаю голову над такой задачей. Есть число любое введенное с клавиатуры, например 4-значное 1234. Нужно вывести поочередно каждый из разрядов, тоесть отдельно вывести 1, потом в новой строке 2 и т. д. Число может быть любым, не только 1234. Четверку я вывожу так:
int a = 1234;
int b = a % (a / 10*10);
Соответственно единичку так:
int b = a / 1000
. Внутренние цифры - исходя из этого же алгоритма, что очень долго и громоздко если в числе 7-8 знаков. Уверен это можно сделать проще. Заранее прошу прощения за настолько для вас простой вопрос.

Решение задачи: «Вывести поочередно каждый из разрядов числа»

textual
Листинг программы
#include <stdio.h>
 
void digit_per_line(unsigned n) {
    if ( n ) {
        digit_per_line(n / 10);
        printf("%u\n", n % 10);
    }
}
 
int main(void) {
    unsigned n;
    
    while ( printf("Number: ") && scanf("%u", &n) == 1 ) {
        if ( n )
            digit_per_line(n);
        else
            printf("0\n");
    }
    
    return 0;
}

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

Вывод каждого разряда числа:

  1. Включаем заголовочный файл
  2. Создаём функцию digit_per_line(unsigned n)
  3. Проверяем условие n != 0
  4. Рекурсивно вызываем функцию digit_per_line(n/10) для каждого разряда числа
  5. Выводим остаток от деления n на 10 с помощью функции printf(%u\n, n % 10)
  6. Создаём функцию main
  7. Объявляем переменную типа unsigned n для хранения числа
  8. Запускаем цикл while, который будет выполняться до тех пор, пока пользователь вводит число и нажимает enter
  9. Выводим приглашение для ввода числа Number:
  10. Считываем число с помощью функции scanf(%u, &n)
  11. Проверяем успешность считывания числа с помощью оператора ==
  12. Если число успешно считано, вызываем функцию digit_per_line(n) для вывода разрядов числа
  13. Если число не успешно считано, выводим сообщение об ошибке 0\n
  14. По завершении цикла while возвращаем 0, что означает успешный конец работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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