![C++从零开始学(视频教学版)(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/128/29977128/b_29977128.jpg)
上QQ阅读APP看书,第一时间看更新
5.6 小试身手——计算商品总价
1.计算批发商品总价
商品批发公司要对客户计算商品总价,假设每箱商品的批发价为P,商品的箱数为W,折扣为D,其商品总价计算标准如表5-1所示。
表5-1 商品总价计算标准
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-T103_13733.jpg?sign=1739035806-Ne978WNqlbDGx0uhmHGfNUQjkg4SDgu2-0-8c585046eb3f377f038ab4e56eb9b9f4)
要求根据输入的p、w以及相应的折扣计算出商品总价s。
下面使用if-else实现上述效果。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P104_13881.jpg?sign=1739035806-4NjZPpu5t66h5GmHVJXRr18vlB1x6kFU-0-fdeb8ae5e670762f3bc7765b263d5341)
【代码详解】
在该例中,定义了4个float型变量,分别代表单价、箱数、折扣和总价,输入单价和箱数,根据箱数判断折扣,根据得到的折扣计算出商品总价s,把商品总价s输出。
运行结果如图5-13所示。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P104_13858.jpg?sign=1739035806-1SrfPajWSpu9TW7Em7uADERcDRr661C1-0-2fd35794fd584c521eb02995e53191a2)
图5-13 代码运行结果
【实例分析】
从运行结果来看,在屏幕上输入了单价和箱数,使用if-else根据不同的箱数得到折扣,最后计算出商品总价格。在本例中,灵活使用了if-else来实现不同箱数产生不同的折扣。
2.计算e的值
e是自然对数的底,它和π一样是数学中常用的无理数常量。其近似值的计算公式为:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P104_13865.jpg?sign=1739035806-zngtgp9cKF8n5SujNlRhXbp0xRuHqzFI-0-1c0d7266a63db4693323d0c6de31ad03)
当n充分大时,这个公式可以计算任意精度e的近似值。为了保证误差r<ε,只需1/(n-1)!(> r)<ε。源代码如下:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P104_13887.jpg?sign=1739035806-A6pycVIvikUnjRH5CXuQy3I1FhIWpNAF-0-092eca175be30ad259ee3fd9a3b91adf)
【代码详解】
在该例中,定义了静态变量eps、int型变量n、float型变量e和r,使用do循环计算e=1+1/1!+1/2!+1/3!+…+1/(n-1)!+r,直到误差小于eps后该循环结束,把计算所得结果输出。
运行结果如图5-14所示。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P105_13995.jpg?sign=1739035806-H4CBhmTYj9Borh2uEApmb5yw4QBGQrZ5-0-6819177bb87f0bedc2e125d5e96522a1)
【实例分析】
从运行结果来看,根据设定的eps把结果计算出来。在使用do-while循环时,先执行do循环中的语句,执行完之后再判断条件是否符合下面需要执行的条件,如果条件符合,就继续循环,否则退出循环。