數字大寫轉換(13位以下)

//功能:將數字轉換成大寫數字(13位數字以下),例如銀行的轉換應用等


#include<stdio.h>

#include<string.h>
int main()
{
int i, j, lon;
char num[100];
char key[10][3] = { "壹","貳","叄","肆","伍","陸","柒","捌","玖" };
char pow[][3] = { "圓", "拾", "佰", "仟" ,"萬" };
char pow_high[][3] = {  "拾", "佰", "仟" ,"億" };
void input(char num[]);
int throne(char num[]);
void result(char num[], char key[][3], char pow[][3], char pow_high[][3]);


input(num);
result(num, key, pow, pow_high);


return 0;
}
void result(char num[], char key[][3], char pow[][3], char pow_high[][3])
{
int lon;
int i, j=0, k, m, n;
lon = throne(num);
for (i = 0; ; i++)
{
//k 的值 爲num[i] 轉換爲對應數字
k = num[i] - '0';
if (lon <= 5)
{
//j作爲退出循環的關鍵
//key[k-1] 對應大寫數字
//pow則是 對應 位數大寫,若是進行該if語句,lon必須<= 5
printf("%s%s", key[k - 1], pow[lon - j - 1]);
j++;
}
else if (lon > 5 && lon <= 9)
{
lon--;
printf("%s%s", key[k - 1], pow_high[lon  - 5]);
}
else if (lon > 9)
{
lon--;
printf("%s%s", key[k - 1], pow_high[lon - 9]);
}
if (j == 5)
break;
}
}
int throne(char num[])
{
//返回長度(位數)
return strlen(num);
}
void input(char num[])
{
//讀取數據
scanf("%s", num);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章