Перевод числа в систему счисления с основанием m (Паскаль -> Си) - C (СИ)

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

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

Const NMax=1000000000;
var
i,p,x,sys:integer;
a:array[1..nmax] of byte;
begin
  i:=0;
  ReadLn(x,sys);   {Вводим число x которое необходимо перевести в систему исчисления с основанием m}
  p:=x;
  While p>0 do
    begin
    i:=i+1;
    a[i]:=p mod sys;
    p:=p div sys;
end;
  Write(x,' в системе счисления- ',sys,' = ');
  for p:=i downto 1 do
    Write(a[p]);
 
end.

Решение задачи: «Перевод числа в систему счисления с основанием m (Паскаль -> Си)»

textual
Листинг программы
#include <stdio.h>
 
const int NMax = 100;
 
int main()
{
    int p,x,sys,i = 0;
    unsigned char a[NMax];
    scanf("%d",&x);
    scanf("%d",&sys);
    p = x;
    
    while(p > 0)
    {
        i++;
        a[i] = p % sys;
        p /= sys;
    }
    printf("%d in scale of notation - %d = ",x,sys);
    for(int p = i; i > 0; i--)
        printf("%d",a[p]);
}

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

  1. Подключение стандартной библиотеки для работы с файлами и вводом/выводом данных .
  2. Объявление константы NMax равной 100, которая определяет максимальное количество разрядов числа, которое будет представлено в системе счисления с основанием m.
  3. В функции main() инициализируются переменные: — p,x,sys - целочисленные переменные, используемые в цикле; — i - счетчик, используемый в цикле; — a - массив символов, используемый для представления числа в системе счисления с основанием m.
  4. С помощью функции scanf() вводятся значения переменных x и sys.
  5. Переменная p инициализируется значением x.
  6. Запускается цикл, который выполняется до тех пор, пока p больше нуля.
  7. Внутри цикла выполняются следующие действия: — Увеличивается значение счетчика i. — В массив a[i] записывается остаток от деления p на sys. — Значение p уменьшается на sys.
  8. После выполнения цикла выводится сообщение с числом x в исходной системе счисления и числом sys, разделенными символом -.
  9. Выполняется цикл, который выводит значения массива a, начиная с позиции i и до тех пор, пока i больше нуля.
  10. Значение i уменьшается на единицу на каждой итерации цикла.
  11. Каждое значение в массиве a[p] выводится на экран с помощью функции printf().

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


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

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

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