Перевод из арабских цифр в римские - C (СИ)
Формулировка задачи:
Задача состоит в следующем: Ввести с клавиатуры год, по его номеру вывести номер столетия римскими цифрами.
Подскажите пожалуйста, как перевести результат в римские цифры?
#include <stdio.h>
void main ()
{
int year,age;
printf ("\nEnter year: ");
scanf ("%d",&year);
if (year%100==0)
age=year/100;
else
age=year/100+1;
printf ("\n\nAGE OF GLORY: %d\n\n",age);
}Решение задачи: «Перевод из арабских цифр в римские»
textual
Листинг программы
typedef struct {
int n; //число, соотвествующее римскому числу
char m; //римское число
} str_num;
str_num num[7];
num[0].n = 1;
num[0].m = 'I';
num[1].n = 5;
num[1].m = 'V';
num[2].n = 10;
num[2].m = 'X';
num[3].n = 50;
num[3].m = 'L';
num[4].n = 100;
num[4].m = 'C';
num[5].n = 500;
num[5].m = 'D';
num[6].n = 1000;
num[6].m = 'M';
Объяснение кода листинга программы
- В коде определен тип данных struct с именем str_num, который содержит два поля: int n и char m.
- Создается массив str_num с именем num, который содержит 7 элементов.
- Значение поля n для каждого элемента массива num устанавливается равным соответствующему числу (1, 5, 10, 50, 100, 500, 1000) в арабской системе счисления.
- Значение поля m для каждого элемента массива num устанавливается равным соответствующему римскому числу (I, V, X, L, C, D, M) в строковом формате.
- В коде нет функций или процедур, которые выполняют переводы из арабских цифр в римские. Код только хранит соответствующие значения для обоих систем счисления.