题目描述
考试题目和要点:
1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。(30分)
2、中文大写金额数字到“元”为止的,在“元”之后,应写“整字,如¥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。(30分)
3、阿拉伯数字中间有“0”时,中文大写要写“零”字,阿拉伯数字中间连续有几个“0”时,中文大写金额中间只写一个“零”字,如¥6007.14,应写成“人民币陆仟零柒元壹角肆分“。(
输入描述:
输入一个double数
输出描述:
输出人民币格式
#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.00001;
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;
}