题目描述
新华书店准备举办一个周末打折活动,活动打折方案如下:
(1)客户买的书中最贵的那本书先打 99 折;(如果有多本最贵的书,那么只有 11 本可以打 99 折)
(2)在此基础上,按照客户购买书的总价再打 99 折;(最后的总价保留 11 位小数)
比如:张芳同学买了 55 本书, 55 本书的价格分别为: 109109 9898 109109 2525 3030 ,那么按照书店的折扣方案,张芳同学应付的总金额 = (109×0.9+98+109+25+30109×0.9+98+109+25+30) ×0.9×0.9 = 324.09324.09 ,保留 11 位小数的结果为 324.1324.1 元。
请你编写一个程序,帮助书店计算客户最后应付的金额。
输入
第 11 行是一个整数 𝑛n ,代表客户购买的书的数量( 𝑛≤100n≤100)。
第 22 行是 𝑛n 个整数,代表 𝑛n 本书的单价。
输出
客户最后应付的金额。
样例
输入
5 109 98 109 25 30
输出
324.1
答案:
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int n,i,j,t,a[101];
double m=0;
cin>>n;
for(i=0;i<n;i++){
cin>>a[i];
}
for(i=1;i<=n-1;i++){
for(j=0;j<=n-1-i;j++){
if(a[j]<a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=1;i<n;i++){
m=m+a[i];
}
m=(m+a[0]*0.9)*0.9;
cout<<fixed<<setprecision(1)<<m;
}