PTA 7-137ゴールドネックレスの販売(エラー修正版)(10点)(0.00001

7-137金のネックレスの販売(誤り訂正版)(10点)
プログラムを作成し、金の価格とネックレスの重さを入力し、合計金額を計算して、領収書を印刷してください。

注:合計金額の最大単位はわずか1億(10億未満)です。

入力フォーマット
金の価格と重量(どちらも正の実数)

出力フォーマット
出力例を参照してください。

注:単価、重量、金額はすべて小数点以下2桁(自動丸め)を出力する必要があり、金額も大文字を出力する必要があります。

大文字と通貨単位で使用される漢字は次のとおりです。

0〜9の数字の大文字は、0、1、2、3、4、5、lu、7、ba、jiuです。
小から大への金額の単位は、セント、ジャオ、ユアン、10、100、1000、1万、10、100、1000、1億です。
入力サンプル
351.6514.5
出力サンプル
単価:351.65元/ g
重量
:14.50g `金額:5098.93元
大文字:五千九百元九暁3分

#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;
	
}

おすすめ

転載: blog.csdn.net/Minelois/article/details/113359469
おすすめ