Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C แปลงเลขโรมันเป็นเลขทศนิยม (Decimal)

อัลกอริทึมแปลงเลขโรมันเป็นทศนิยมในภาษา C:

อัลกอริทึม

ขั้นตอน 1 - เริ่ม

ขั้นตอน 2 - อ่านเลขโรมันตอนรันไทม์

ขั้นตอน 3 - length := strlen(roman)

ขั้นตอน 4 - for i = 0 ถึง length-1 ทำ

    ขั้นตอน 4.1 - switch(roman[i])

        case 'm' / 'M': d[i] := 1000

        case 'd' / 'D': d[i] := 500

        case 'c' / 'C': d[i] := 100

        case 'l' / 'L': d[i] := 50

        case 'x' / 'X': d[i] := 10

        case 'v' / 'V': d[i] := 5

        case 'i' / 'I': d[i] := 1

ขั้นตอน 5 - for i = 0 ถึง length-1 ทำ

    ขั้นตอน 5.1 - ถ้า (i==length-1) หรือ (d[i] >= d[i+1]) แล้ว deci += d[i]

    ขั้นตอน 5.2 - ไม่เช่นนั้น 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