四时宝库

程序员的知识宝库

c语言 小熊猫 Dev cpp6.7.5 版本bug

问题描述:

请看下面代码

#include <stdio.h>

#include <math.h>

int main(void)

{

int res=0;

int i=2;

res=pow(10,i);

printf("%d",res);


return 0;

}

期望输出100,但是在panda Dev cpp6.7.5版本中会输出99


在看下面的代码 正确输出100

#include <stdio.h>

#include <math.h>

int main(void)

{

int res=0;

int i=2;

res=pow(10,2);

printf("%d",res);


return 0;

}


上述代码区别在pow()函数传入int 类型的 i(值为2)与直接传入2

前者出现错误,而后者正确。

已知:pow()函数计算幂需要传入double类型数据,当传入int类型数据时会隐式转换类型为double

我推测小熊猫Dev cpp6.7.5在传入变量时存在隐式转换问题。

下面是我的版本6.7.5


我尝试下面代码,发现在pow(10,i)中当i=2,4,7,8,9时出现问题


解决方法:

使用小龙版dev cpp 6.0版本没有上述问题


小结:初学者最好使用最新版本的编译器,或者仍在维护中的编译器项目,比如小龙版本dev cpp

devcpp: Windows 环境下的一个轻量级免费 C/C++ 集成开发环境(IDE)

小熊猫版本编译器6.7.5下载(可供问题复现)

https://wwi.lanzoup.com/imkxI27b1zkh
密码:1234

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接