C語言程式將羅馬數字轉換為十進位制數字
下面是使用 C 語言將羅馬數字轉換為十進位制數字的演算法:
演算法
步驟 1 - 開始
步驟 2 - 在執行時讀取羅馬數字
步驟 3 - length: = strlen(roman)
步驟 4 - for i = 0 to length-1 do
步驟 4.1 - switch(roman[i])
步驟 4.1.1 - case ‘m’
步驟 4.1.2 - case ‘M’
步驟 4.1.2.1 - d[i]: =1000
步驟 4.1.3 - case ‘d’
步驟 4.1.4 - case ‘D’
步驟 4.1.4.1 - d[i]: =500
步驟 4.1.5 - case ‘c’
步驟 4.1.6 - case ‘C’
步驟 4.1.6.1 - d[i]: =100
步驟 4.1.7 - case ‘l’
步驟 4.1.8 - case ‘L’
步驟 4.1.8.1 - d[i]: =50
步驟 4.1.9 - case ‘x’
步驟 4.1.10 - case ‘X’
步驟 4.1.10.1 - d[i]: =10
步驟 4.1.11 - case ‘v’
步驟 4.1.12 - case ‘V’
步驟 4.1.12.1 - d[i]: =5
步驟 4.1.13 - case ‘i’
步驟 4.1.14 - case ‘I’
步驟 4.1.14.1 - d[i]: =1
步驟 5 - for i =0 to length-1 do
步驟 5.1 - if (i==length-1) or (d[i]>=d[i+1]) then
步驟 5.1.1 - deci += d[i]
步驟 5.2 - else
步驟 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
");
printf("Decimal:.........Roman
");
printf("%5d............%3c
",1,'I');
printf("%5d............%3c
",5,'V');
printf("%5d............%3c
",10,'X');
printf("%5d............%3c
",50,'L');
printf("%5d............%3c
",100,'C');
printf("%5d............%3c
",500,'D');
printf("%5d............%3c
",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
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP