我自己試的結果,除了萬之前的零無法判斷外(我不知道該怎麼弄),其他是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;
}