losy 发表于 2020-6-9 17:07:12

(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;
}

永恒的蓝色梦想 发表于 2020-6-9 18:53:30

没看问题,不过条件中用 strlen 的很少见。

Mike_python小 发表于 2020-6-16 06:35:54

不晓得
页: [1]
查看完整版本: (C)(新人頭好大)請問以下兩段代碼究竟哪裡不一樣,測試結果不同QOQ