You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
programming-examples/c/Basic/C Program to Convert Roman ...

66 lines
1.7 KiB
C

/*
* C Program to Convert Roman Number to Decimal Number
*/
#include <stdio.h>
#include <string.h>
int digit(char);
int main()
{
char romanval[1000];
int i = 0;
long int number = 0;
printf("Enter roman num (Valid digits are I, V, X, L, C, D, M):\n");
scanf("%s", romanval);
while (romanval[i])
{
if (digit(romanval[i]) 2)
{
if (digit(romanval[i]) = digit(romanval[i+1]))
number = number + digit(romanval[i]);
else
{
number = number + (digit(romanval[i + 1]) -
digit(romanval[i]));
i++;
}
i++;
}
printf("Its decimal value is : %ld", number);
return 0;
}
int digit(char c)
{
int value = 0;
switch (c)
{
case 'I':
value = 1;
break;
case 'V':
value = 5;
break;
case 'X':
value = 10;
break;
case 'L':
value = 50;
break;
case 'C':
value = 100;
break;
case 'D':
value = 500;
break;
case 'M':
value = 1000;
break;
case '0':
value = 0;
break;
default:
value = -1;
}
return value;
}