#7249: WA(line:3) 請解惑


s609170027 (s609170027)


請幫我看看哪裡錯了要修改,感激不盡

我用DEV跑完全正常,但測資說我的答案為壹拾零,正確答案為壹拾

--------------------------------------------------------------------------------

#include<stdio.h>

int main(){
    char n[10][4]={"零","壹","貳","參","肆","伍","陸","柒","捌","玖"};
    char s[10][4]={"拾","億","仟","佰","拾","萬","仟","佰","拾",""};
       int i=9,j,k=0,l=0,num,c[10]={0};
       while(scanf("%d",&num)!=EOF){
            if(num==0)
              printf("零\n");
            else{
            while(num){
                 c[i--]=num%10;
                 num=num/10;
            }
            for(j=i+1,k=0;j<10;j++,k++){
               if(c[j]!=0)
                  printf("%s%s",n[c[j]],s[j]);
               else if(j==1)
                  printf("%s",s[j]);
               else if(j==5&&k<4)
                  printf("%s",s[j]);
               else if(c[j+1]!=0)
                  printf("%s",n[c[j]]);
            }
            printf("\n");
            i=9;
            }
        }
            return 0;
       }

---------------------------------------------------------------------

#7257: Re:WA(line:3) 請解惑


s609170027 (s609170027)



               else if(c[j+1]!=0)
                  printf("%s",n[c[j]]);
            }
            printf("\n");
            i=9;
            }
        }
            return 0;
       }

---------------------------------------------------------------------

 好吧 我自行解決了 原來dev的程式碼存成.c和.cpp執行的結果不同 我原來存成.c執行正常,後來改存.cpp執行才發現結果出來和測資的錯誤一樣,但我測資選c不是cpp阿?

 我把程式碼稍稍改正了,原來

else if(c[j+1]!=0)
       printf("%s",n[c[j]]);

改成

   else if(c[j+1]!=0&&j!=9)
            printf("%s",n[c[j]]);

    尾巴就不會多零了