C भाषा में रोमन अंकों को दशमलव संख्याओं में बदलने के लिए नीचे एक एल्गोरिथम दिया गया है:
एल्गोरिथम
चरण 1 - शुरू
चरण 2 - रनटाइम पर रोमन अंक पढ़ें
चरण 3 - लंबाई: = strlen(roman)
चरण 4 - i = 0 से लंबाई-1 तक करें
- चरण 4.1 - switch(roman[i])
- चरण 4.1.1 - केस 'm':
- चरण 4.1.2 - केस 'M': चरण 4.1.2.1 - d[i] := 1000
- चरण 4.1.3 - केस 'd':
- चरण 4.1.4 - केस 'D': चरण 4.1.4.1 - d[i] := 500
- चरण 4.1.5 - केस 'c':
- चरण 4.1.6 - केस 'C': चरण 4.1.6.1 - d[i] := 100
- चरण 4.1.7 - केस 'l':
- चरण 4.1.8 - केस 'L': चरण 4.1.8.1 - d[i] := 50
- चरण 4.1.9 - केस 'x':
- चरण 4.1.10 - केस 'X': चरण 4.1.10.1 - d[i] := 10
- चरण 4.1.11 - केस 'v':
- चरण 4.1.12 - केस 'V': चरण 4.1.12.1 - d[i] := 5
- चरण 4.1.13 - केस 'i':
- चरण 4.1.14 - केस 'I': चरण 4.1.14.1 - d[i] := 1
चरण 5 - i = 0 से लंबाई-1 तक करें
- चरण 5.1 - यदि (i == लंबाई-1) या (d[i] >= d[i+1]) तो चरण 5.1.1 - deci += d[i]
- चरण 5.2 - अन्यथा चरण 5.2.1 - deci -= d[i]
चरण 6 - रोमन अंक के दशमलव समतुल्य को प्रिंट करें
चरण 7 - रुकें
प्रोग्राम
निम्नलिखित C प्रोग्राम रोमन अंकों को दशमलव संख्याओं में बदलता है:
#include <stdio.h>
#include <conio.h>
main(){
char roman[30];
int deci = 0;
int length, i, d[30];
printf("The Roman equivalent to decimal\n");
printf("Decimal:.........Roman\n");
printf("%5d............%3c\n", 1, 'I');
printf("%5d............%3c\n", 5, 'V');
printf("%5d............%3c\n", 10, 'X');
printf("%5d............%3c\n", 50, 'L');
printf("%5d............%3c\n", 100, 'C');
printf("%5d............%3c\n", 500, 'D');
printf("%5d............%3c\n", 1000, 'M');
printf("Enter a Roman numeral:");
scanf("%s", roman);
length = strlen(roman);
for(i = 0; i < length; i++){
switch(roman[i]){
case 'm':
case 'M': d[i] = 1000; break;
case 'd':
case 'D': d[i] = 500; break;
case 'c':
case 'C': d[i] = 100; break;
case 'l':
case 'L': d[i] = 50; break;
case 'x':
case 'X': d[i] = 10; break;
case 'v':
case 'V': d[i] = 5; break;
case 'i':
case 'I': d[i] = 1;
}
}
for(i = 0; i < length; i++){
if(i == length-1 || d[i] >= d[i+1])
deci += d[i];
else
deci -= d[i];
}
printf("The Decimal equivalent of Roman numeral %s is %d", roman, deci);
}
आउटपुट
The Roman equivalent to decimal Decimal:.........Roman 1............ I 5............ V 10............ X 50............ L 100............ C 500............ D 1000............ M Enter a Roman numeral: M The Decimal equivalent of Roman Numeral M is 1000