编程序实现如下功能:从键盘输入一个包含小数的小写金额(整数部分不超过7位),将其转换为汉字大写金额,最后输出结果。
提示:不需要对0进行特殊处理。
(C语言微课视频——哔哩哔哩网站——账号:巨之说)
输入格式:
输入一个包含小数的小写金额(整数部分不超过7位,小数部分不超过2位)。
输出格式:
汉字大写金额,最后换行。
输入样例:
123.45
输出样例:
壹佰贰拾叁元肆角伍分
示例
#include <stdio.h>
void s(int i) {
switch (i)
{
case 0:printf("零"); 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;
}
}
int main()
{
// 思路很简单,直接取每位转大写,处理一下万单位就行(如果前面不是0 就不打印就行)
double money;
scanf("%lf", &money);
int i7 = (int)money / 1000000 % 10;
int i6 = (int)money / 100000 % 10;
int i5 = (int)money / 10000 % 10;
int i4 = (int)money / 1000 % 10;
int i3 = (int)money / 100 % 10;
int i2 = (int)money / 10 % 10;
int i1 = (int)money / 1 % 10;
int i0_1 = (int)(money * 10) % 10; //角
int i0_2 = (int)(money * 100) % 10; //分
if (i7 != 0) { s(i7); printf("佰"); }
if (i6 != 0) { s(i6); printf("拾"); }
if (i5 != 0) s(i5);
if (i7 > 0 || i6 > 0 || i5 > 0) printf("万");
if (i4 != 0) { s(i4); printf("仟"); }
if (i3 != 0) { s(i3); printf("佰"); }
if (i2 != 0) { s(i2); printf("拾"); }
if (i1 != 0) { s(i1); printf("元"); }
if (i0_1 != 0) { s(i0_1); printf("角"); }
if (i0_2 != 0) { s(i0_2); printf("分"); }
}
标签:case,10,实数,money,大写,break,int,小写,printf
From: https://www.cnblogs.com/xxing/p/17316463.html