C语言编程:数字金额转换为中文大写金额?

设计一个程序将一个数字金额转换为中文大写金额,输入数字金额,输出中文大写金额... 设计一个程序将一个数字金额转换为中文大写金额,输入数字金额,输出中文大写金额 展开
 我来答
sodoqq
推荐于2016-11-19 · 超过10用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:22.4万
展开全部
先生,这个代码在Linux下用gcc编译通过了。
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <locale.h>

wchar_t cstrs[10];
wchar_t bit[10];

int main()
{
cstrs[0]=0x96F6;cstrs[1]=0x58F9;cstrs[2]=0x8D30;
cstrs[3]=0x53C4;cstrs[4]=0x8086;cstrs[5]=0x4F0D;
cstrs[6]=0x9678;cstrs[7]=0x67D2;cstrs[8]=0x634C;
cstrs[9]=0x7396;
bit[0]=0x5706;bit[1]=0x62FE;bit[2]=0x4F70;
bit[3]=0x4EDF;bit[4]=0x842C;bit[5]=0x62FE;
bit[6]=0x4F70;bit[7]=0x4EDF;bit[8]=0x5104;
bit[9]=0x62FE;bit[10]=0x4F70;bit[11]=0x4EDF;
bit[12]=0x842C;

setlocale(LC_ALL, "");
double innum;
int k=0; int tmp=1;

scanf("%lf", &innum);
while(tmp<innum){
k+=1; tmp*=10;
}
if(tmp>innum){k--; tmp=tmp/10;}
if(k<0){k=0, tmp=1;}

int e, ee, t=0;
e=(int)innum;
while(e>=1){
ee = (int)e/tmp;
if(ee!=0){
if(t){
printf("%lc",cstrs[0]);
t=0;
}
printf("%lc", cstrs[ee]);
printf("%lc", bit[k]);
} else {
t=1;
if(k==8 || k==4)printf("%lc",bit[k]);
}
k--; e=e%tmp; tmp=tmp/10;
}
long et;
et=(long)(innum*10); printf("%lc%lc",cstrs[et%10], 0x89D2);
et=(long)(innum*100); printf("%lc%lc",cstrs[et%10], 0x5206);

puts("");
return 0;
}
例如:
输入:
256000023.22
输出:
贰亿伍仟陆佰万零贰拾叄圆贰角贰分
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蔷芳8055
2012-02-14 · TA获得超过5.8万个赞
知道小有建树答主
回答量:2.5万
采纳率:0%
帮助的人:3257万
展开全部
100.2789.23
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
838771836
2012-02-04 · TA获得超过631个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:141万
展开全部
没分数,没动力啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式