#1836: Dev試做OK 上傳卻WA


abalone (偷偷來)

學校 : 不指定學校
編號 : 6328
來源 : [220.134.238.11]
最後登入時間 :
2011-06-27 16:34:52
a008. 中文大寫數字 -- admin | From: [118.169.76.39] | 發表日期 : 2009-04-23 20:29

我自己試的結果,除了萬之前的零無法判斷外(我不知道該怎麼弄),其他是OK的

收到的訊息是

您的答案為: 壹貳參肆伍萬仟佰拾玖貳參肆伍 ...略
正確答案為: 壹萬貳仟參佰肆拾伍

 請問是否有人可以幫我抓一下問題,謝謝。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>

int main()
{
     int num,i,j,a,b,c,size;    
     char x1[10][3]={"拾","佰","仟","萬","拾","佰","千","億","拾","佰"},
          x2[10][3]={"零","壹","貳","參","肆","伍","陸","柒","捌","玖"},
          str[11],str1[22][3],str2[22][3];
      while(scanf("%s",str)!=EOF)
      {
         num=atoi(str);
         size=strlen(str);
         for(i=0;i<=9;i++)
         {
            if(num%10)
               break;
            else
               num/=10;
         }
         a=i;
         for(i=0;i<(size-a);i++)
         {
            for(j=0;j<=2;j++)
            {
            str1[i][j]=x2[str[i]-48][j];
            str2[i][j]=x1[size-(i+2)][j];
            }
         }

         c=0;
         for(i=0;i<(size-a);i++)
         {
            if((str[i-1]-48)!=0 || (str[i]-48)!=0 || c==1)
            {
               printf("%s",str1[i]);
               c=0;
            }
            if((str[i]-48)!=0)
               printf("%s",str2[i]);
            else if (!((size-i-1)%4))
            {
               printf("%s",str2[i]);
               c=1;
            }
         }
         printf("\n");
      }
     return 0;
}

 
ZeroJudge Forum