Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <map>
  3. #include <Windows.h>
  4.  
  5. using namespace std;
  6.  
  7. bool e = false;
  8.  
  9. void romanToInt() {
  10.     char s[256];
  11.     int total = 0, i;
  12.     map<char, int> m = { {'I', 1}, {'V', 5},{'X', 10},{'L', 50},
  13.     {'C', 100},{'D', 500},{'M', 1000} };
  14.  
  15.     printf("Введите число в РИМСКОЙ системе счисления (I, V, X, L, C, D, M): ");
  16.     do {
  17.         if (e) {
  18.             printf("Ошибка. Повторите ввод: ");
  19.         }
  20.         e = false;
  21.         gets_s(s, 256);
  22.  
  23.         for (i = 0; i < strlen(s); i++) {
  24.             if (m[s[i + 1]] <= m[s[i]])
  25.                 total += m[s[i]];
  26.             else  total -= m[s[i]];
  27.         }
  28.  
  29.         if (!total)
  30.             e = true;;
  31.     } while (e);
  32.  
  33.     printf("Число %s в десятичной системе счисления: %d", s, total);
  34. }
  35.  
  36. int main() {
  37.     SetConsoleCP(1251);
  38.     SetConsoleOutputCP(1251);
  39.  
  40.     printf("Перевод из Римской системы счисления в десятичную.\n");
  41.     romanToInt();
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement