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

练习2-1的要求如下:

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


题图

我最终输入的代码如下

正确代码

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

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

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



下面是先前的问题代码


问题代码

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

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

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


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


强制类型转换实现
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容