다음은 로마 숫자를 십진수로 변환하는 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.4 단계 - d[ i]: = 500 4 단계 4.1.5 -case 'c':
4.1.6 단계 -case '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 단계 - CASE 'X': : 단계 4.1.10- 사례 '단계 4.1.12.1 -d [i] : = 5
단계 5- I = 0 ~ 길이 -1
사용 - – – – – –-- 5.1.1단계 - if (i == 길이 - 1) 또는 (d[i]>= d[i+1])
] 5.2단계 -그렇지 않으면
5.2.1단계 -DECI - = D [나는 ]
6단계 - 로마 숫자에 해당하는 10진수를 인쇄합니다.
7단계 10진수에 대한 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,'I'); printf("%5d............%3c</p><p>",5,'V'); printf("%5d............%3c</p><p>",10,'X'); printf("%5d............%3c</p><p>",50,'L'); printf("%5d............%3c</p><p>",100,'C'); printf("%5d............%3c</p><p>",500,'D'); printf("%5d............%3c</p><p>",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); }
Output
위 프로그램을 실행하면 다음과 같은 결과가 생성됩니다 −
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!