#include <stdio.h> //自己写的不堪入目 #include <string.h> int main() { char money[100]; while (scanf("%s",money)!=EOF) { int z_len=0,len=0,i,cheak=1; char *p; p=strchr(money,'.'); if (p) { *p='\0'; cheak=0; } len=z_len=strlen(money); for (i=0;i<len;i++,z_len--) { int count; switch (money[i]) { case '0': if (money[i+1]!='0') { printf("零"); break; } else break; case '1': printf("壹"); break; case '2': printf("贰"); break; case '3': printf("叁"); break; case '4': printf("肆"); break; case '5': printf("伍"); break; case '6': printf("陆"); break; case '7': printf("柒"); break; case '8': printf("捌"); break; case '9': printf("玖"); break; } if (money[i]=='0'||z_len==1) continue; if (z_len<=9) count=z_len-1; else count=z_len-9; switch (count) { case 8: printf("亿"); break; case 7: printf("仟"); break; case 6: printf("佰"); break; case 5: printf("拾"); break; case 4: printf("万"); break; case 3: printf("仟"); break; case 2: printf("佰"); break; case 1: printf("拾"); break; } } if (cheak) printf("元整\n"); else { printf("元"); switch (money[i+1]) { case '0': if (money[i+2]!='0') { printf("零"); break; } else break; case '1': printf("壹"); break; case '2': printf("贰"); break; case '3': printf("叁"); break; case '4': printf("肆"); break; case '5': printf("伍"); break; case '6': printf("陆"); break; case '7': printf("柒"); break; case '8': printf("捌"); break; case '9': printf("玖"); break; } printf("角"); if (!money[i+2]) printf("\n"); else { switch (money[i+2]) { case '0': if (money[i+3]!='0') { printf("零"); break; } else break; case '1': printf("壹"); break; case '2': printf("贰"); break; case '3': printf("叁"); break; case '4': printf("肆"); break; case '5': printf("伍"); break; case '6': printf("陆"); break; case '7': printf("柒"); break; case '8': printf("捌"); break; case '9': printf("玖"); break; } printf("分\n"); } } } return 0; }
描述
读入一个浮点数值,将其转化为金额的中文大写形式。
例如:
123.45转化为“壹佰贰拾叁元肆角伍分”。
1)当金额为整数时,只表示整数部分,省略小数部分,并添加“整”字。
例如:123表示为“壹佰贰拾叁元整”
2)当金额中有连续的0时(含一个0),只需写一个“零”即可。
例如:10005表示为“壹万零伍元整”
3)10元缩写为“拾元整”。
输入
表示金额的浮点数若干,每行一个
输出
各金额的中文大写形式,每行一个 注:数字 壹贰叁肆伍陆柒捌玖拾佰仟万亿 单位 元角分
样例输入1
123.45
123
10005
10
样例输出1
壹佰贰拾叁元肆角伍分
壹佰贰拾叁元整
壹万零伍元整
拾元整
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复