#include <iostream>
#include <clocale>
using namespace std;
// Предусловие: введена строка st длиной до 13 символов из римских цифр (I, V, X, L, C, D, M).
// Постусловие: вычислено и выведено десятичное число s.
void main()
{
setlocale(LC_ALL, "Russian");
char st[14]; // 13 символов + 1 под '\0[span_0](start_span)'[span_0](end_span)
cout << "Введите римское число: ";
cin.getline(st, 14);
// Таблицы соответствия римских знаков и их значений
char r[] = { 'I', 'V', 'X', 'L', 'C', 'D', 'M' };
int v[] = { 1, 5, 10, 50, 100, 500, 1000 };
int s = 0;
int i = 0;
while (st[i] != '\0')
{
int n1 = 0;
int n2 = 0;
// Находим значение текущей и следующей буквы
for (int j = 0; j < 7; j++)
{
if (st[i] == r[j]) n1 = v[j];
if (st[i + 1] == r[j]) n2 = v[j];
}
// Если текущая меньше следующей — вычитаем, иначе прибавляем
if (n1 < n2)
{
s = s - n1;
}
else
{
s = s + n1;
}
i++;
}
cout << "В десятичной системе: " << s << endl;
system("pause");
}