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

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

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

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

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

textual
Листинг программы
  1. char* convert(int n,int base,char* s)
  2. {
  3.     if(!n) return s;
  4.     *--s=n%base+'0';
  5.     return convert(n/base,base,s);
  6. }
  7. void main(int argc,char* argv[])
  8. {  
  9.     int i,n;
  10.     char *p,s[33]="";
  11.    
  12.     printf("n:");
  13.     scanf("%d",&n);
  14.     for(i=2; i<=10; i++)
  15.     {
  16.         p=convert(n,i,s+sizeof(s)-1);
  17.         printf("%s   base %d\n",p,i);
  18.     }
  19.     system("pause");
  20. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы