#include <stdio.h>
#include <string.h>
static char nums[][5] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
static char units[][5] = {"", "拾", "佰", "仟"};
static int get_nums(char *s, char *value);
int main()
{
double money, small;
int decnum, flag, firstsize, ps, i;
while (scanf("%lf", &money) != EOF) {
if (money < 1 && money > 0.001) {
decnum = (money + 0.005) * 100;
if (decnum / 10 == 0) {
printf("%s分\n", nums[decnum % 10]);
} else if (decnum % 10 == 0) {
printf("%s角\n", nums[decnum / 10]);
} else {
printf("%s角%s分\n", nums[decnum / 10], nums[decnum % 10]);
}
continue;
}
char value[100] = {0}, mon[100] = {0}, recv[100] = {0};
sprintf(mon, "%d", (int)money);
printf("strlen(mon)=%d\n",strlen(mon));
flag = strlen(mon) / 4;
firstsize = strlen(mon) % 4;
ps = 0;
printf("firstsize=%d\nflag=%d\n",firstsize,flag);
for (i = 0; i < strlen(mon); i++){
recv[ps] = mon[i];
ps++;
printf("ps=%d\n",ps);
if (ps == 4 || (firstsize != 0 && ps == firstsize)) {
printf("ps====%d\n",ps);
printf("recv=%s\n",recv);
if (get_nums(recv, value) == 0) {
if (flag == 0) {
strcat(value, "元");
} else if (flag == 1 && strlen(mon) == 4) {
strcat(value, "元");
} else if (flag == 1 && strlen(mon) > 4) {
strcat(value, "万");
} else if (flag == 2 && strlen(mon) == 8) {
strcat(value, "万");
} else if (flag == 2 && strlen(mon) > 8) {
strcat(value, "亿");
} else {
printf("error\n");
}
} else {
strcat(value, "元");
}
flag--;
firstsize = 0;
ps = 0;
}
}
small = (money - (int)money) + 0.005;
if (small < 0.01) {
strcat(value, "整");
} else {
char temp[100] = {0};
decnum = small * 100;
if (decnum / 10 == 0) {
sprintf(temp, "零%s分\n", nums[decnum % 10]);
strcat(value, temp);
} else if (decnum % 10 == 0) {
sprintf(temp, "%s角\n", nums[decnum / 10]);
strcat(value, temp);
} else {
sprintf(temp, "%s角%s分\n", nums[decnum / 10], nums[decnum % 10]);
strcat(value, temp);
}
}
printf("%s", value);
}
return 0;
}
static int get_nums(char *s, char *value)
{
int flags, len, i;
flags = 0;
len = strlen(s);
for (i = 0; i < len; i++) {
if (s[i] > '0') {
if (flags == 0) {
strcat(value, nums[s[i] - '0']);
strcat(value, units[len - i -1]);
} else {
strcat(value, nums[0]);
strcat(value, nums[s[i] - '0']);
strcat(value, units[len - i -1]);
flags = 0;
}
} else {
flags++;
}
}
if (flags == len) {
return -1;
}
return 0;
}