一道笔试题 - 数字转大写金额
2016-03-20 09:46
531 查看
要求:将输入的数字转换成大写的金额形式。如:
1、123转为壹佰贰拾叁圆
2、2003转为贰仟零叁圆
3、20000转为贰万圆
1、123转为壹佰贰拾叁圆
2、2003转为贰仟零叁圆
3、20000转为贰万圆
#include <stdio.h> #define M 100 void exchange(char *name[],int ver,int array[],char *mname[]) { int i=0,k,temp,iszero=0; temp=ver; printf("\n"); while(i<ver) { k=array[i]; if(k==0) { if(iszero == 0 && array[i+1] != 0 && i+1 < ver) { iszero = 1; printf("%s",name[k]); } if(temp==5) { printf("%s",mname[temp-1]); } if(temp==1) { printf("%s",mname[temp-1]); } } else { iszero = 0; printf("%s%s",name[k],mname[temp-1]); } temp--; i++; } } int input(int *po,int *p) { int loop=0,pp; printf("\n请输入金额\n"); scanf("%d",po); pp=*po; while(pp>=1) { *p=pp%10; p++; pp=pp/10; loop++; } return loop; } void inv(int *pointer,int ver) { int temp,*po,i=0,m,*p,*pp; m=(ver-1)/2; p=pointer; po=pointer+ver-1; pp=pointer+m; for(;p<=pp;p++,po--) { temp=*p;*p=*po;*po=temp; } } void main() { char * name[]={"零","壹","贰","叁","肆","伍","陆","柒","扒","玖","拾"}; char *mname[]={"圆","十","百","千","万","十","百","千","亿"}; int n,money,array[M],ver; ver=input(&money,array); inv(array,ver); printf("%d,%d",money,ver); exchange(name,ver,array,mname); }
相关文章推荐
- 【HDU5647 BestCoder Round 76 (div1)B】【树形DP】DZY Loves Connecting 一棵树的所有生成子树的大小乘积
- POJ1833 排列
- 连续发送多份小数据时40ms延迟问题
- mybatis高级映射一对多查询(一)
- 谷歌浏览器 标签
- 第39讲项目2 ——n=a!+b!+c!
- 天声人語 20160320 シジュウカラがつづる「文」
- Dialog背景的设置
- 【HDU5646 BestCoder Round 76 (div1)A】【贪心】DZY Loves Partition n个数拆分k个最大乘积
- Display Port 和 eDisplay Port
- docker registry v2使用配置
- 关于浏览器兼容性
- 串口通信DMA中断
- 深入理解异步消息处理机制Message,handler,MessageQueue,looper
- linux命令介绍(4)
- PB]-子数据窗口
- Python-面向对象
- 第57课 spark sql on hive实战
- 序
- DES/des3 加密程序