![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=1739427340-OJwCpBZiLuUkXuIIPiaxnoSAyNSVLC63-0-e2536679bba86e22ddc30fdfc4ab6717)
要求根据输入的p、w以及相应的折扣计算出商品总价s。
下面使用if-else实现上述效果。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P104_13881.jpg?sign=1739427340-NPMwhr01afxQHTiSOJM0EpIswM9GqCYn-0-3e3c579331e15c466c8cbb4b6b7dcee8)
【代码详解】
在该例中,定义了4个float型变量,分别代表单价、箱数、折扣和总价,输入单价和箱数,根据箱数判断折扣,根据得到的折扣计算出商品总价s,把商品总价s输出。
运行结果如图5-13所示。
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P104_13858.jpg?sign=1739427340-v4SgmwonHGZlx8q2wtTYCBMk87tSe5Es-0-2f05248612d989a79f44cab92ae6de0e)
图5-13 代码运行结果
【实例分析】
从运行结果来看,在屏幕上输入了单价和箱数,使用if-else根据不同的箱数得到折扣,最后计算出商品总价格。在本例中,灵活使用了if-else来实现不同箱数产生不同的折扣。
2.计算e的值
e是自然对数的底,它和π一样是数学中常用的无理数常量。其近似值的计算公式为:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P104_13865.jpg?sign=1739427340-qGYFpBcvm4ja8yAs3MHcmmXfOyBinaBu-0-fcfa2e3c8899fe22474582ba5edad6ea)
当n充分大时,这个公式可以计算任意精度e的近似值。为了保证误差r<ε,只需1/(n-1)!(> r)<ε。源代码如下:
![](https://epubservercos.yuewen.com/A8BCBE/16499866604816706/epubprivate/OEBPS/Images/Figure-P104_13887.jpg?sign=1739427340-rttOCEjzp2l4Cq9gSZ23PpzM2Vncq90H-0-26e202f9cf5aa600c7aec352a9a9e410)
【代码详解】
在该例中,定义了静态变量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=1739427340-5qoXLETUWp9Yr35WVtr6WVTTaCYV2ekf-0-bc00fcdb5242a7073f9325470383438e)
【实例分析】
从运行结果来看,根据设定的eps把结果计算出来。在使用do-while循环时,先执行do循环中的语句,执行完之后再判断条件是否符合下面需要执行的条件,如果条件符合,就继续循环,否则退出循环。