Рубрики

Вывести длинный int в C, используя только putchar ()

Напишите функцию C print (n), которая принимает в качестве аргумента длинное целое число n и печатает его на консоли. Единственной допустимой библиотечной функцией является putchar () , никакие другие функции, такие как itoa () или printf (), не допускаются. Использование петель также не допускается.

Мы настоятельно рекомендуем свернуть браузер и попробовать это в первую очередь.

Это простой вопрос с подвохом. Так как putchar () печатает символ, нам нужно вызвать putchar () для всех цифр. Рекурсию всегда можно использовать для замены итерации, поэтому, используя рекурсию, мы можем печатать все цифры одну за другой. Теперь вопрос putchar () печатает символ, как печатать цифры с помощью putchar (). Нам нужно преобразовать каждую цифру в соответствующее ей значение ASCII, это можно сделать с помощью значения ASCII '0'. Ниже приводится полная программа C.

/ * C программа для печати длинного целого числа

 используя только putchar () * /

#include <stdio.h>

  

void print(long n)

{

    // Если число меньше 0, поставить знак -

    // и меняем число на положительное

    if (n < 0) {

        putchar('-');

        n = -n;

    }

  

    // Удалить последнюю цифру и повторить

    if (n/10)

        print(n/10);

  

    // Распечатать последнюю цифру

    putchar(n%10 + '0');

}

  
// Программа драйвера для тестирования функции abvoe

int main()

{

    long int n = 12045;

    print(n);

    return 0;

}

Выход:

12045

Важно отметить последовательность putchar () и рекурсивного вызова вызова (n / 10). Поскольку цифры должны печататься слева направо, рекурсивный вызов должен появляться перед putchar () (крайняя правая цифра должна быть напечатана в конце, все остальные цифры должны быть напечатаны перед ней).

Эта статья предоставлена Абхай Рати . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Вывести длинный int в C, используя только putchar ()

0.00 (0%) 0 votes