Создать программу по переводу чисел из одной системы счисления в другую (рекурсия) - C (СИ)

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

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

Здравствуйте! Помогите пожалуйста выполнить задание по Си из книги Прата. Вообще нужно создать программу рекурсивную по переводу из десятичной системы исчисления в двоичную, восьмеричную и так далее до 10.

Решение задачи: «Создать программу по переводу чисел из одной системы счисления в другую (рекурсия)»

textual
Листинг программы
char* convert(int n,int base,char* s)
{
    if(!n) return s;
    *--s=n%base+'0';
    return convert(n/base,base,s);
}
void main(int argc,char* argv[])
{   
    int i,n;
    char *p,s[33]="";
    
    printf("n:");
    scanf("%d",&n);
    for(i=2; i<=10; i++)
    {
        p=convert(n,i,s+sizeof(s)-1);
        printf("%s   base %d\n",p,i);
    }
    system("pause");
}

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

  1. Функция convert принимает три аргумента: целое число n, основание системы счисления base и указатель на строку s.
  2. Если n равно нулю, функция возвращает указатель на строку s.
  3. В противном случае функция выполняет следующие действия:
    • Делает ссылку на последний символ строки s и присваивает ему значение остатка от деления n на base, приведенного к целочисленному типу с основанием 10, и преобразует его в символ.
    • Возвращает результат рекурсивного вызова функции convert с аргументами n/base, base и указателем на обновленную строку.
  4. В функции main определены следующие переменные:
    • int i, n; - для инициализации счетчика и ввода числа соответственно.
    • char *p; - для хранения результата работы функции convert.
    • char s[33] = ``; - для хранения результата перевода числа в строку.
  5. Пользователю предлагается ввести число, после чего выполняется цикл, который итерируется от 2 до 10 и вызывает функцию convert для каждого значения основания системы счисления.
  6. Результат работы функции convert выводится на экран вместе с значением основания системы счисления.
  7. В конце программы вызывается функция system(pause), чтобы приостановить выполнение программы до нажатия клавиши.

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


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

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

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