[問題] c 數字轉國字
開發平台(Platform): (Ex: Win10, Linux, ...)
win8
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
stdio.h
問題(Question):
如何顯示成 平常國字標準數字念法
末幾位是0 不顯示
從最左邊起 遇到大於等於一個0
只顯示一個零
餵入的資料(Input):
42002500
預期的正確結果(Expected Output):
肆仟貳百萬貳仟五百元
錯誤結果(Wrong Output):
肆仟貳百零零貳百五十零元
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://ideone.com/XnET5L
#include <stdio.h>
void p1(int);
void p2(int);
char *dig[] = {"零","壹","貳","參","肆","伍","陸","柒","捌","玖"};
char *fer[] = {"\0","十","百","仟","萬","十","百","仟","億"};
int times=0;
int main()
{
int n;
printf("N = ");
scanf("%d",&n);
p1(n);
printf("元\n");
return 0;
}
void p1(int n)
{
int prefix,curryDig;
if( n < 10){
printf("%s",dig[n]);
p2(times);
}
else{
prefix = n / 10;
times++;
p1(prefix);
times--;
curryDig = n % 10;
if(curryDig == 0){
int count = 0;
while( prefix % 10 == 0){
count++;
prefix /= 10;
times--;
curryDig = prefix % 10;
}
if(times != 0)
printf("%s",dig[0]);
}
else{
printf("%s",dig[curryDig]);
p2(times);
}
}
}
void p2(int times)
{
printf("%s",fer[times]);
}
補充說明(Supplement):
times當成從後面數來第幾個
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.82.122.178
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1527911899.A.126.html
推
06/02 12:22,
6年前
, 1F
06/02 12:22, 1F
→
06/02 12:25,
6年前
, 2F
06/02 12:25, 2F
→
06/02 12:26,
6年前
, 3F
06/02 12:26, 3F
→
06/02 12:27,
6年前
, 4F
06/02 12:27, 4F
※ 編輯: a346571358 (111.82.122.178), 06/02/2018 12:27:54
→
06/02 12:30,
6年前
, 5F
06/02 12:30, 5F
→
06/02 12:31,
6年前
, 6F
06/02 12:31, 6F
→
06/02 12:33,
6年前
, 7F
06/02 12:33, 7F
→
06/02 12:34,
6年前
, 8F
06/02 12:34, 8F
→
06/02 12:38,
6年前
, 9F
06/02 12:38, 9F
→
06/02 12:38,
6年前
, 10F
06/02 12:38, 10F
→
06/02 12:39,
6年前
, 11F
06/02 12:39, 11F
→
06/02 12:40,
6年前
, 12F
06/02 12:40, 12F
→
06/02 12:41,
6年前
, 13F
06/02 12:41, 13F
→
06/02 12:42,
6年前
, 14F
06/02 12:42, 14F
→
06/02 12:43,
6年前
, 15F
06/02 12:43, 15F
→
06/02 12:43,
6年前
, 16F
06/02 12:43, 16F
→
06/02 12:43,
6年前
, 17F
06/02 12:43, 17F
→
06/02 12:46,
6年前
, 18F
06/02 12:46, 18F
→
06/02 12:47,
6年前
, 19F
06/02 12:47, 19F
→
06/02 13:04,
6年前
, 20F
06/02 13:04, 20F
→
06/02 13:11,
6年前
, 21F
06/02 13:11, 21F
→
06/02 13:54,
6年前
, 22F
06/02 13:54, 22F
→
06/02 14:08,
6年前
, 23F
06/02 14:08, 23F
→
06/02 15:27,
6年前
, 24F
06/02 15:27, 24F
討論串 (同標題文章)