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