Преобразуйте целое число в строку цифр с помощью рекурсивной программы - C (СИ)
Формулировка задачи:
Решение задачи: «Преобразуйте целое число в строку цифр с помощью рекурсивной программы»
#include <stdio.h>
void int2char (int n, int p, char *s)
{
int k;
if (n < 10)
{
*(s+p)=n+'0';
return;
}
else
{
k=n % 10;
*(s+p)=k+'0';
int2char(n/10,p-1,s);
}
}
int main(int argc, char* argv[])
{
char S[20];
int i,k;
for (i=0; i<20; i++) S[i]=' '; S[19]=0;
k=123456;
int2char(k,18,S);
printf("%s\n",S);
return 0;
}
Объяснение кода листинга программы
В данном коде представлена рекурсивная функция int2char, которая принимает три аргумента: целое число n, индекс p и указатель на строку s. Цель функции - преобразовать целое число n в строку цифр, используя рекурсию. При запуске функции int2char со значением n меньше или равным 9, функция присваивает s[p] значение n+'0' (цифра n в десятичной системе счисления) и завершает работу. В случае, если n больше 9, функция находит последнюю цифру n (обозначенную как k) и присваивает s[p] значение k+'0'. Затем функция вызывает саму себя (int2char) с аргументами n/10 (десятичная система счисления), p-1 и s. Это позволяет обрабатывать каждую цифру числа по отдельности, двигаясь от старших разрядов к младшим. В функции main создается массив S размером 20 символов, заполненный пробелами. Затем в переменную k записывается число 123456, и функция int2char вызывается с аргументами k, 18 (последний индекс массива S) и S. Результатом работы функции int2char будет строка, представляющая число k в виде цифр. Наконец, функция printf выводит полученную строку на экран.