C++从零开始学(视频教学版)(第2版)
上QQ阅读APP看书,第一时间看更新

5.6 小试身手——计算商品总价

1.计算批发商品总价

商品批发公司要对客户计算商品总价,假设每箱商品的批发价为P,商品的箱数为W,折扣为D,其商品总价计算标准如表5-1所示。

表5-1 商品总价计算标准

要求根据输入的p、w以及相应的折扣计算出商品总价s。

下面使用if-else实现上述效果。

【代码详解】

在该例中,定义了4个float型变量,分别代表单价、箱数、折扣和总价,输入单价和箱数,根据箱数判断折扣,根据得到的折扣计算出商品总价s,把商品总价s输出。

运行结果如图5-13所示。

图5-13 代码运行结果

【实例分析】

从运行结果来看,在屏幕上输入了单价和箱数,使用if-else根据不同的箱数得到折扣,最后计算出商品总价格。在本例中,灵活使用了if-else来实现不同箱数产生不同的折扣。

2.计算e的值

e是自然对数的底,它和π一样是数学中常用的无理数常量。其近似值的计算公式为:

当n充分大时,这个公式可以计算任意精度e的近似值。为了保证误差r<ε,只需1/(n-1)!(> r)<ε。源代码如下:

【代码详解】

在该例中,定义了静态变量eps、int型变量n、float型变量e和r,使用do循环计算e=1+1/1!+1/2!+1/3!+…+1/(n-1)!+r,直到误差小于eps后该循环结束,把计算所得结果输出。

运行结果如图5-14所示。

【实例分析】

从运行结果来看,根据设定的eps把结果计算出来。在使用do-while循环时,先执行do循环中的语句,执行完之后再判断条件是否符合下面需要执行的条件,如果条件符合,就继续循环,否则退出循环。