我需要將羅馬數字轉換爲整數值,順序無關緊要。 (9 = VIIII)羅馬數字翻譯器中的隨機添加
在目前我開始從我的代碼中得到一個模糊因子,它在我實現X時開始於20,到達M時達到530。因爲當我= 531和V = 535,MDCLXVI = 1560.它和eclipse有時會說它不能運行,並且可以運行其他時間。
Here`s代碼
C int romanToInt(char *s) {
int n, k=0;
while(k<[MAX_LINE]) {
if(s[k]==’I’) {
n=n++
}
if(s[k]==’v’) {
n=n+5
}
if(s[k]==’X’) {
n=n+10
}
if(s[k]==’L’) {
n=n+50
}
if(s[k]==’C’) {
n=n+100
}
if(s[k]==’D’) {
n=n+500
}
if(s[k]==’M’) {
n=n+1000
}
return n;
}
感謝您的幫助。
乍一看:你的v''是小寫字母。另外,獨立方括號中的[MAX_LINE]是什麼意思?而'n'似乎沒有初始化。 'int n,k = 0;'只將'k'初始化爲零。 – 2014-12-01 18:57:35
最後,'n = n ++'是未定義的行爲。在void context中使用增量'n ++',或者使用賦值'n = n + 1'。兩者的組合在C中是不合法的。 – 2014-12-01 19:02:33
9不是VIIII是IX,請注意4只在時鐘面上是IIII。 – 2014-12-01 19:14:02