Перевод числа в систему счисления с основанием 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]);
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с файлами и вводом/выводом данных
. - Объявление константы NMax равной 100, которая определяет максимальное количество разрядов числа, которое будет представлено в системе счисления с основанием m.
- В функции main() инициализируются переменные: — p,x,sys - целочисленные переменные, используемые в цикле; — i - счетчик, используемый в цикле; — a - массив символов, используемый для представления числа в системе счисления с основанием m.
- С помощью функции scanf() вводятся значения переменных x и sys.
- Переменная p инициализируется значением x.
- Запускается цикл, который выполняется до тех пор, пока p больше нуля.
- Внутри цикла выполняются следующие действия: — Увеличивается значение счетчика i. — В массив a[i] записывается остаток от деления p на sys. — Значение p уменьшается на sys.
- После выполнения цикла выводится сообщение с числом x в исходной системе счисления и числом sys, разделенными символом
-. - Выполняется цикл, который выводит значения массива a, начиная с позиции i и до тех пор, пока i больше нуля.
- Значение i уменьшается на единицу на каждой итерации цикла.
- Каждое значение в массиве a[p] выводится на экран с помощью функции printf().