http://blog.csdn.net/zhengnanlee/article/details/8724706?utm_source=tuicool&utm_medium=referral
同學說C++看不懂,我就改成C語言了。。
思想很簡單,但是要注意,漢語是每五位爲一個基本單位,其中分別是不輸出,十,百,千,萬,所以權重函數控制好單位就ok了。其次注意,strlen(a)-1,末尾有'\0',還有strrev函數在G++下沒有。。。我了個去剛裝上ubuntu,結果還得跑到舍友電腦上調試。。。
下面是源碼:
- #include <stdio.h>
- #include <string.h>
- void trans(int a)
- {
- if(a == 1)printf("壹");
- else if(a == 2)printf("貳");
- else if(a == 3)printf("叄");
- else if(a == 4)printf("肆");
- else if(a == 5)printf("伍");
- else if(a == 6)printf("陸");
- else if(a == 7)printf("柒");
- else if(a == 8)printf("捌");
- else if(a == 9)printf("玖");
- else if(a == 0)printf("零");
- }
- void weight(int i)
- {
- if(i==1||i==5||i==9)
- printf("拾");
- if(i==2||i==6||i==10)
- printf("佰");
- if(i==3||i==7||i==11)
- printf("仟");
- if(i==4)
- printf("萬");
- if(i==8)
- printf("億");
- if(i==0)
- printf("元整\n");
- }
- int main()
- {
- while(1)
- {
- char a[10];
- scanf("%s",a);
- strrev(a);
- for(int i=strlen(a) - 1; a[i]; i--)
- {
- trans(a[i]-'0');
- weight(i);
- }
- }
- }