首页  >  文章  >  后端开发  >  将以下内容翻译为中文:C程序将罗马数字转换为十进制数字

将以下内容翻译为中文:C程序将罗马数字转换为十进制数字

WBOY
WBOY转载
2023-09-05 21:53:05641浏览

将以下内容翻译为中文:C程序将罗马数字转换为十进制数字

给出以下是一个将罗马数字转换为十进制数字的C语言算法:

算法

步骤1 - 开始

步骤2 - 在运行时读取罗马数字

步骤3 - 长度: = strlen(roman)

步骤4 - 对于i = 0到长度-1

      步骤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 - 对于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</p><p>");
   printf("Decimal:.........Roman</p><p>");
   printf("%5d............%3c</p><p>",1,&#39;I&#39;);
   printf("%5d............%3c</p><p>",5,&#39;V&#39;);
   printf("%5d............%3c</p><p>",10,&#39;X&#39;);
   printf("%5d............%3c</p><p>",50,&#39;L&#39;);
   printf("%5d............%3c</p><p>",100,&#39;C&#39;);
   printf("%5d............%3c</p><p>",500,&#39;D&#39;);
   printf("%5d............%3c</p><p>",1000,&#39;M&#39;);
   printf("Enter a Roman numeral:");
   scanf("%s",roman);
   length=strlen(roman);
   for(i=0;i<length;i++){
      switch(roman[i]){
         case &#39;m&#39;:
         case &#39;M&#39;: d[i]=1000; break;
         case &#39;d&#39;:
         case &#39;D&#39;: d[i]= 500; break;
         case &#39;c&#39;:
         case &#39;C&#39;: d[i]= 100; break;
         case &#39;l&#39;:
         case &#39;L&#39;: d[i]= 50; break;
         case &#39;x&#39;:
         case &#39;X&#39;: d[i]= 10; break;;
         case &#39;v&#39;:
         case &#39;V&#39;: d[i]= 5; break;
         case &#39;i&#39;:
         case &#39;I&#39;: 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

以上是将以下内容翻译为中文:C程序将罗马数字转换为十进制数字的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:tutorialspoint.com。如有侵权,请联系admin@php.cn删除