Конвертер из римской системы счисления в арабскую - C (СИ)

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

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

конвертер из римской системы счисления в арабскую

Решение задачи: «Конвертер из римской системы счисления в арабскую»

textual
Листинг программы
// rimskaya_sistema.cpp: определяет точку входа для консольного приложения.
 
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i,j,a,b;
    char s[10];
    int ch = 0;
    printf("Введите число в римской системе\n");
    scanf("%s", s);
    switch(s[strlen(s)-1])
    {
    case 'I' : a = 1; break;
    case 'V' : a = 5; break;
    case 'X' : a = 10; break;
    case 'L' : a = 50; break;
    case 'C' : a = 100; break;
    case 'D' : a = 500; break;
    case 'M' : a = 1000; 
    }
    ch = a;
    for ( i = strlen(s)-2 ; i >-1 ; i--)
    {
        switch(s[i])
        {
        case 'I' : b = 1; break;
        case 'V' : b = 5; break;
        case 'X' : b = 10; break;
        case 'L' : b = 50; break;
        case 'C' : b = 100; break;
        case 'D' : b = 500; break;
        case 'M' : b = 1000; 
        }
        if ( a == b)
        {
            ch = ch + b;
        }
        if ( b < a)
        {
            ch = ch - b;
            a = b;
        }
        if ( b > a)
        {
            ch = ch + b;
            a = b;
        }
    }
    printf("Output: %d", ch);
    getch();
    return 0;
}

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

  1. Включаются необходимые заголовочные файлы
  2. Определяется точка входа для консольного приложения
  3. Объявляются переменные: i, j, a, b, s, ch
  4. Выводится сообщение для ввода числа в римской системе счисления
  5. Считывается введенное число в массив s с помощью функции scanf
  6. Определяется значение переменной a в зависимости от последнего символа введенного числа
  7. Переменная ch инициализируется значением переменной a
  8. Начинается цикл, который проходит по всем символам введенного числа в обратном порядке
  9. Внутри цикла определяется значение переменной b в зависимости от текущего символа
  10. Если значение переменной a равно значению переменной b, то значение переменной ch увеличивается на значение переменной b
  11. Если значение переменной b меньше значения переменной a, то значение переменной ch уменьшается на значение переменной b, а значения переменных a и b меняются местами
  12. Если значение переменной b больше значения переменной a, то значение переменной ch увеличивается на значение переменной b, а значения переменных a и b меняются местами
  13. После окончания цикла выводится значение переменной ch
  14. Вызывается функция getch для приостановки выполнения программы до нажатия клавиши
  15. Возвращается 0, что означает успешный конец работы программы

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


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

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

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