//题目描述 人民币转换
//考试题目和要点:
//
//1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分)
//
//2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分)
//
//3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,中文大写金额中间只写一个“零”字,如¥6007.14,
//应写成“人民币陆仟零柒元壹角肆分“。
//
//输入描述 :
//输入一个double数
//
//输出描述 :
//输出人民币格式
//示例1
//输入
//151121.15
//输出
//人民币拾伍万壹仟壹佰贰拾壹元壹角伍分
#include <iostream>
using namespace std;
char *m_money[11] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾" };
void printQBS(int num){
int qian;
int bai;
int shi;
int ge;
qian = num / 1000;
num -= qian * 1000;
bai = num / 100;
num -= bai * 100;
shi = num / 10;
num -= shi * 10;
ge = num;
if (qian != 0)
cout << m_money[qian] << "仟";
if (bai != 0){
cout << m_money[bai] << "佰";
}
if (qian != 0 && bai == 0)
{
cout << m_money[bai];
}
if (shi != 0)
{
if (shi != 1)
cout << m_money[shi] << "拾";
else
cout << "拾";
}
if (bai != 0 && shi == 0)
{
cout << m_money[shi];
}
if (ge != 0){
cout << m_money[ge];
}
}
int main(){
double money;
while (cin >> money){
money += 0.005;
cout << "人民币";
int num;
//1、计算亿
num = money / 100000000;
money -= num * 100000000;
if (num != 0)
{
printQBS(num);
cout << "亿";
}
//2、计算万
num = money / 10000;
money -= num * 10000;
if (num != 0){
printQBS(num);
cout << "万";
}
//3、计算元
num = int(money);
money -= num;
if (num != 0)
{
printQBS(num);
cout << "元";
}
//4、计算角分
money = money * 100;
int jiao = money / 10;
int fen = money - jiao * 10;
if (jiao != 0)
cout << m_money[jiao] << "角";
if (fen != 0)
cout << m_money[fen] << "分";
cout << endl;
}
return 0;
}