Dev C++带来的一个小插曲

练习2-1的要求如下:

像下面那样读取两个整数,然后显示前者是后者的百分之几。


Dev C++带来的一个小插曲_第1张图片
题图

我最终输入的代码如下

Dev C++带来的一个小插曲_第2张图片
正确代码

按理说,这份代码完全没有问题,但是结果却总是固定为0%。

后来查找原因,是Dev C++编译运行时,不知为何,仍然是运行先前不完善的代码。而0%正是先前问题代码的运行结果。

对策:彻底删除先前的.cpp  .exe 文件,重新编译运行,一切正常。



下面是先前的问题代码


Dev C++带来的一个小插曲_第3张图片
问题代码

可以看到L11 是不正确的。a,b均为int型,而a/b的结果已经为0,所以 result被锁定为0.

我的解题思路:既然a/b<1,要表示为百分数,只需再乘100即可。却忽略了数据类型的运算,发现后一度想办法进行类型转换,最终却发现,远不如答案简洁。

可见,乘除虽然是同级运算,但顺序的调整,有时也会起到意想不到的作用。


后经思考,使用强制类型转换的代码如下


Dev C++带来的一个小插曲_第4张图片
强制类型转换实现

你可能感兴趣的:(Dev C++带来的一个小插曲)