问题:1427. 有趣的折扣
类型:数组找数
题目描述:
新华书店准备举办一个周末打折活动,活动打折方案如下:
(1)客户买的书中最贵的那本书先打 9 折;(如果有多本最贵的书,那么只有 1 本可以打 9 折)
(2)在此基础上,按照客户购买书的总价再打 9 折;(最后的总价保留 1 位小数)
比如:张芳同学买了 5 本书, 5 本书的价格分别为: 109 98 109 25 30 ,那么按照书店的折扣方案,张芳同学应付的总金额 = (109×0.9+98+109+25+30)×0.9 = 324.09 ,保留 1 位小数的结果为 324.1 元。
请你编写一个程序,帮助书店计算客户最后应付的金额。
输入:
第 1 行是一个整数 n ,代表客户购买的数的数量( n≤100)。
第 2 行是 n 个整数,代表 n 本书的单价。
输出:
客户最后应付的金额。
样例:
输入:
5 109 98 109 25 30 12
输出:
324.1 1
完整代码如下:
#include<bits/stdc++.h> using namespace std; int main(){//一、分析问题//已知: n 本书的单价( n≤100)。//未知:客户最后应付的金额。(最后的总价保留 1 位小数)//关系: 最贵的那本书先打 9 折在此基础上,按照客户购买书的总价再打 9 折;//二、定义变量(已知、未知、关系)int n,a[110],mmax=INT_MIN;double m=0.0;//三、输入已知cin>>n;for(int i=0;i<n;i++){cin>>a[i];m+=a[i];if(a[i]>mmax) mmax=a[i];}//四、根据关系计算m=(m-mmax+mmax*0.9)*0.9;m=round(m*10)/10;//五、输出未知cout<<fixed<<setprecision(1)<<m;return 0; } 12345678910111213141516171819202122232425