fatbug18 发表于 2016-2-11 14:46:51

pow()函数

本帖最后由 fatbug18 于 2016-2-11 14:48 编辑

为什么这样输出的结果是0?

而如果是这样的话
输出结果是



zlh 发表于 2016-2-11 18:57:10

把math.h去掉

fatbug18 发表于 2016-2-11 19:21:52

zlh 发表于 2016-2-11 18:57
把math.h去掉


还是不行,而且pow这个函数实在math.h里面的啊,删掉了怎么引用

zlh 发表于 2016-2-11 19:23:09

fatbug18 发表于 2016-2-11 19:21
还是不行,而且pow这个函数实在math.h里面的啊,删掉了怎么引用

我用的是VC++6.0,去掉了就可以。如果加上就是你那两种效果

mzbzhchh 发表于 2016-2-11 19:28:07

水点YB!!

shuofxz 发表于 2016-2-11 23:45:03

刚才试了一下
pow(a,b)的默认返回值应该是浮点型的
所以你输出的时候要改成%f就有数了
printf("result=%f",pow(2,2));

fatbug18 发表于 2016-2-12 17:20:53

shuofxz 发表于 2016-2-11 23:45
刚才试了一下
pow(a,b)的默认返回值应该是浮点型的
所以你输出的时候要改成%f就有数了

那你知不知道为什么会这样?,而且好奇怪,%f是来显示浮点数的,我这个计算结果是16739.

而且我这个输出的答案是16739,并没有达到int的最大值,觉得好奇怪,你知不知道为什么会这样

shuofxz 发表于 2016-2-12 18:55:16

本帖最后由 shuofxz 于 2016-2-12 19:02 编辑

fatbug18 发表于 2016-2-12 17:20
那你知不知道为什么会这样?,而且好奇怪,%f是来显示浮点数的,我这个计算结果是16739.

而且我这个输 ...

pow(2.5 , 2) 的值不就是小数了,所以在math.h文件中定义的pow()返回值为浮点型
输出的时候自然要用 %f 来输出

你试试下面这串代码,对一个浮点型的数用%d输出,结果就是0
#include "stdio.h"
int main()
{
        double a = 2.5;
        printf("%d", a);
        return 0;
}

fatbug18 发表于 2016-2-12 20:50:05

shuofxz 发表于 2016-2-12 18:55
pow(2.5 , 2) 的值不就是小数了,所以在math.h文件中定义的pow()返回值为浮点型
输出的时候自然要用 % ...

谢谢
页: [1]
查看完整版本: pow()函数