人民币金额大写
2014-03-05 12:25
423 查看
题目描述:
在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序。本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误的情况)。比如,用户输入:35201,程序输出:叁万伍仟贰佰零壹用户输入:30201,程序输出:叁万零贰佰零壹用户输入:30001,程序输出:叁万零壹用户输入:31000,程序输出:叁万壹仟用户输入:120023201,程序输出:壹亿贰仟零贰万叁仟贰佰零壹用户输入:120020001,程序输出:壹亿贰仟零贰万零壹用户输入:100000001,程序输出:壹亿零壹可以看到,在万后满千位,则不加零,否则要补零,但不要出现类似“零零”的情况。在亿后满千万位,则不加零,否则要补零,但整个“万档”没有数字时,“万”字省去。代码:
在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序。本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误的情况)。比如,用户输入:35201,程序输出:叁万伍仟贰佰零壹用户输入:30201,程序输出:叁万零贰佰零壹用户输入:30001,程序输出:叁万零壹用户输入:31000,程序输出:叁万壹仟用户输入:120023201,程序输出:壹亿贰仟零贰万叁仟贰佰零壹用户输入:120020001,程序输出:壹亿贰仟零贰万零壹用户输入:100000001,程序输出:壹亿零壹可以看到,在万后满千位,则不加零,否则要补零,但不要出现类似“零零”的情况。在亿后满千万位,则不加零,否则要补零,但整个“万档”没有数字时,“万”字省去。代码:
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char data[10]; int i; char zi[10][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; gets(data); int len=strlen(data); int flag=1; for(i=0;i<strlen(data);i++){ if(data[i]-'0'==0){ //过滤重复的0 int j=i+1; while(data[j]-'0'==0&&j<len){ j++;} if(j==len){ //最后全为0的时候直接输出 if(len-i>=8){ printf("亿");i=j;break;} else if(len-i>=4&&len-i<8){ printf("万");i=j;break;} } if(len-i>=9&&len-j<=5){ //万档全为0的时候 flag=0;} if(data[i+1]-'0'!=0) //重复的0,只在最后一个输出一个零 printf("零"); } else{ switch ((strlen(data)-1-i)%4+1){ //取模,四位一次判断位数 case 1: printf("%s",zi[data[i]-'0']);break; case 2: printf("%s拾",zi[data[i]-'0']);break; case 3: printf("%s佰",zi[data[i]-'0']);break; case 4: printf("%s仟",zi[data[i]-'0']);break;} } if((strlen(data)-i-1)==4){ if(flag) //万档不全为0 printf("万");} if((strlen(data)-i-1)==8) printf("亿"); } system("PAUSE"); return 0; }
相关文章推荐
- .NET把小写数字金额转换成大写人民币金额的两种算法
- ABAP--将数字金额转换为人民币大写字符串(增加UNICODE版本)
- 金额的大写方法_把数字转化为人民币的大写汉字
- 金额转换为人民币中文大写
- PHP人民币金额数字转中文大写的函数
- 将数字金额转换成大写人民币形式(网站收到的一个方法很不错)
- [转]C#实现人民币金额小写转大写的代码
- 11.3 如何将金额转换为大写人民币金额?
- "黑马程序员“将小写金额转换成人民币大写金额
- SQL人民币小写金额转大写
- PHP将数字金额转化为中文人民币大写
- C#人民币金额大写
- 人民币小写金额转大写(转载)
- 将人民币大写金额格式转为数字金额格式C#代码
- 在excel中人民币小写金额自动转大写金额
- 也发个PHP人民币金额数字转中文大写
- 将人民币金额转换为大写
- 30行,金额转人民币大写的代码
- 人民币数字金额转大写金额
- 人民币小写金额转大写