欢迎来到IT嘟嘟的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

人民币转换

//题目描述   人民币转换
//考试题目和要点:
//
//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;
}

  

posted on 2019-08-12 20:33  IT嘟嘟  阅读(223)  评论(0编辑  收藏  举报

导航