胖头老师出了一道数学应用题,要求糖糖和豆豆用C++程序计算出结果。买5根雪糕要21元。买13根同样的雪糕,需要多少钱?
糖糖花几分钟写了以下代码。
运行结果如下。
糖糖问胖头老师:“结果为什么不是54.6呢?”
胖头老师指出程序中的错误:“第一,格式符应该是‘%f';第二,C++的整数除法的运算结果是整数,而不是浮点数。代码要这样修改一下。”
首先,把格式符换成“%f”,其次把“21”换成“21.0”,这样C++就会自动进行浮点数的除法。在数学里,21.0和21是一样的,但在计算机程序里,21.0和21是不一样的。胖头老师运行修改后的程序,运算结果变成了“54.6”。
C++进行浮点数运算得出来的结果可能跟数学里的结果不一样,浮点数运算结果是一个近似值。示例代码如下。
运行结果如下。
数学上正确的结果应该是“13.44”。这个例子说明只要这个近似值对于解决的问题是足够的,那么这种运算结果就是可以接受的。
练习题
(1)找出以下代码中的语法错误。
(2)阅读程序写结果。
(3)以下程序计算了半径是7厘米的圆面积,请补充代码。
(4)已知直角三角形的两条直角边的长度分别是4厘米和6厘米,以下程序计算了斜边的长度,请补充代码。sqrt函数用于计算一个数的平方根。