C語言實驗:輸入一個整數的小寫金額值,轉化爲大寫金額值並輸出

http://blog.csdn.net/zhengnanlee/article/details/8724706?utm_source=tuicool&utm_medium=referral


同學說C++看不懂,我就改成C語言了。。


思想很簡單,但是要注意,漢語是每五位爲一個基本單位,其中分別是不輸出,十,百,千,萬,所以權重函數控制好單位就ok了。其次注意,strlen(a)-1,末尾有'\0',還有strrev函數在G++下沒有。。。我了個去剛裝上ubuntu,結果還得跑到舍友電腦上調試。。。

下面是源碼:

  1. #include <stdio.h>  
  2. #include <string.h>  
  3.   
  4. void trans(int a)  
  5. {  
  6.     if(a == 1)printf("壹");  
  7.   
  8.     else if(a == 2)printf("貳");  
  9.   
  10.     else if(a == 3)printf("叄");  
  11.   
  12.     else if(a == 4)printf("肆");  
  13.   
  14.     else if(a == 5)printf("伍");  
  15.   
  16.     else if(a == 6)printf("陸");  
  17.   
  18.     else if(a == 7)printf("柒");  
  19.   
  20.     else if(a == 8)printf("捌");  
  21.   
  22.     else if(a == 9)printf("玖");  
  23.   
  24.     else if(a == 0)printf("零");  
  25.   
  26. }  
  27. void weight(int i)  
  28. {  
  29.     if(i==1||i==5||i==9)  
  30.         printf("拾");  
  31.     if(i==2||i==6||i==10)  
  32.         printf("佰");  
  33.     if(i==3||i==7||i==11)  
  34.         printf("仟");  
  35.     if(i==4)  
  36.         printf("萬");  
  37.     if(i==8)  
  38.         printf("億");  
  39.     if(i==0)  
  40.         printf("元整\n");  
  41. }  
  42. int main()  
  43. {  
  44.     while(1)  
  45.     {  
  46.         char a[10];  
  47.         scanf("%s",a);  
  48.         strrev(a);  
  49.         for(int i=strlen(a) - 1; a[i]; i--)  
  50.         {  
  51.             trans(a[i]-'0');  
  52.             weight(i);  
  53.         }  
  54.     }  
  55. }  

發佈了44 篇原創文章 · 獲贊 27 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章