(C)(新人頭好大)請問以下兩段代碼究竟哪裡不一樣,測試結果不同QOQ
看了一下午偷偷求助....請問這兩段究竟哪裡不同><
我打上面那段測試結果錯誤 下面的卻對了QOQ
int Romatonum(char *roma)
{
int i, sum = 0;
for(i = 0; i<strlen(roma) ; i++)
{
switch(roma)
{
case 'I':if(roma == 'V')
{
sum = sum + 4;
i++;
}
else if(roma == 'X')
{
sum = sum + 9;
i++;
}
else
{
sum = sum + 1;
}
break;
case 'V':sum = sum + 5;break;
case 'X':if(roma == 'L')
{
sum = sum + 40;
i++;
}
if(roma == 'C')
{
sum = sum + 90;
i++;
}
else
{
sum = sum + 10;
}
break;
case 'L':sum = sum + 50;break;
case 'C':if(roma == 'D')
{
sum = sum + 400;
i++;
}
else if(roma == '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) {
case 'I':
if (roma == 'V')
sum += 4,i++;
else if (roma == 'X')
sum += 9,i++;
else
sum += 1;
break;
case 'V':
sum += 5;
break;
case 'X':
if (roma == 'L')
sum += 40,i++;
else if (roma == 'C')
sum += 90,i++;
else
sum += 10;
break;
case 'L':
sum += 50;
break;
case 'C':
if (roma == 'D')
sum += 400,i++;
else if (roma == 'M')
sum += 900,i++;
else
sum += 100;
break;
case 'D':
sum += 500;
break;
case 'M':
sum += 1000;
}
}
return sum;
}
没看问题,不过条件中用 strlen 的很少见。 不晓得
页:
[1]