24h購物| | PChome| 登入
2009-07-03 20:34:36| 人氣3,337| 回應0 | 上一篇 | 下一篇

中文大寫數字

推薦 0 收藏 0 轉貼0 訂閱站台

老師的程式碼...

/**********************************************************/

#include<stdio.h>
#include<stdlib.h>
int A(int x);
int B(int x,int flag);
main()
{
 int n;
 while(scanf("%d",&n)==1)
   A(n);
 return 0;
}
int A(int x)
{
  int f=0;
  if(x==0)
    {
      printf("零\n");
      return 0;
    }
  if(x>=100000000)
    {
       B(x/100000000,0);
       printf("億");
       x%=100000000;
       f=1;
    }
  if(x>=10000)
    {
      B(x/10000,f);
      printf("萬");
      x%=10000;
      f=1;
    }
  if(x>0)
   B(x,f);
   printf("\n");
  
   return 0;
}
int switched(int flag)
{
  switch(flag)
    {
      case 0:printf("零");break;
      case 1:printf("壹");break;
      case 2:printf("貳");break;
      case 3:printf("參");break;
      case 4:printf("肆");break;
      case 5:printf("伍");break;
      case 6:printf("陸");break;
      case 7:printf("柒");break;
      case 8:printf("捌");break;
      case 9:printf("玖");break;
    } 
}
int B(int x,int flag)
{
   if(flag==1 && x>0 && x<1000)
    {printf("零");flag=0;}
  
   if(x/1000>0)
     {
       switched(x/1000);
       printf("仟");
       x%=1000;
       flag=1;
     }
     
   if(flag==1 && x>0 && x<100)
     {printf("零");flag=0;}
    
   if(x/100>0)
     {
       switched(x/100);
       printf("佰");
       x%=100;
       flag=1;
     }
   if(flag==1 && x>0 && x<10)
     {printf("零");flag=0;} 
    
   if(x/10>0)
     {
       switched(x/10);
       printf("拾");
       x%=10;
       flag=1;
     }
   if(x>0) switched(x);
}

台長: 來源不明
人氣(3,337) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:一即是全、全即是一
此分類上一篇:阿尼亞的煩惱-2

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文