PTA 7-137 出售金项链(误差修正版) (10分)(0.00001

7-137 出售金项链(误差修正版) (10分)
请编写程序,输入黄金的价格和项链的重量,计算总金额,并打印票据。

注:总金额单位最大只到亿(不到10亿)。

输入格式
金价和重量(均为正实数)

输出格式
参看输出样例。

注:单价、重量和金额,均要求输出2位小数(自动四舍五入),金额还要求输出大写。

大写数字和金额单位所使用的汉字分别为:

数字0 ~ 9的大写依次为: 零、壹、贰、叁、肆、伍、陆、柒、捌、玖。
金额单位由小大到依次为: 分、角、元、拾、佰、仟、万、拾、佰、仟、亿。
输入样例
351.65 14.5
输出样例
单价: 351.65元/克
重量: 14.50克`
金额: 5098.93元
大写: 伍仟零佰玖拾捌元玖角叁分

#include<bits/stdc++.h>
using namespace std;
char d1[50][5]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};//二维
char d2[50][5]={"分","角","元","拾","佰","仟","万","拾","佰","仟","亿"};
int main(){
	double a,b,c;
	cin>>a>>b;
	char s[20]={};
	c=1.0*a*b+0.00001;
	
	printf("单价: %.2lf元/克\n",a);
	printf("重量: %.2lf克\n",b);
	printf("金额: %.2lf元\n",c);
	printf("大写: ");
	sprintf(s,"%.2lf",c);//单个导入
	int total=0;
	for(int i=0;;++i){
		if(s[i]=='.'){
			break;
		}
		++total;
	}
	int i;//超时
	for( i=0;;++i){
		if(s[i]=='.')break;
		printf("%s%s",d1[s[i]-'0'],d2[total+1]);
		--total;
		
	}
	
	printf("%s角%s分\n",d1[s[i+1]-'0'],d1[s[i+2]-'0']);
	return 0;
	
}

上一篇:canvas和svg的区别


下一篇:poj 1665(水题,简单计算)