|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
看了一下午偷偷求助....
請問這兩段究竟哪裡不同><
我打上面那段測試結果錯誤 下面的卻對了QOQ
int Romatonum(char *roma)
{
int i, sum = 0;
for(i = 0; i<strlen(roma) ; i++)
{
switch(roma[i])
{
case 'I':if(roma[i+1] == 'V')
{
sum = sum + 4;
i++;
}
else if(roma[i+1] == 'X')
{
sum = sum + 9;
i++;
}
else
{
sum = sum + 1;
}
break;
case 'V':sum = sum + 5;break;
case 'X':if(roma[i+1] == 'L')
{
sum = sum + 40;
i++;
}
if(roma[i+1] == 'C')
{
sum = sum + 90;
i++;
}
else
{
sum = sum + 10;
}
break;
case 'L':sum = sum + 50;break;
case 'C':if(roma[i+1] == 'D')
{
sum = sum + 400;
i++;
}
else if(roma[i+1] == 'M')
{
sum = sum + 900;
i++;
}
else
{
sum = sum + 100;
}
break;
case 'D':sum = sum + 500;break;
case 'M':sum = sum + 1000;break;
}
}
return sum;
}
-----------------------------------------------------
int Romatonum(char *roma) {
int sum=0;
int i;
for (i=0;i<strlen(roma);i++){
switch (roma[i]) {
case 'I':
if (roma[i+1] == 'V')
sum += 4,i++;
else if (roma[i+1] == 'X')
sum += 9,i++;
else
sum += 1;
break;
case 'V':
sum += 5;
break;
case 'X':
if (roma[i+1] == 'L')
sum += 40,i++;
else if (roma[i+1] == 'C')
sum += 90,i++;
else
sum += 10;
break;
case 'L':
sum += 50;
break;
case 'C':
if (roma[i+1] == 'D')
sum += 400,i++;
else if (roma[i+1] == 'M')
sum += 900,i++;
else
sum += 100;
break;
case 'D':
sum += 500;
break;
case 'M':
sum += 1000;
}
}
return sum;
}
|
|