C语言pow()函数问题。

作者&投稿:查可 (若有异议请与网页底部的电邮联系)
C语言pow函数使用问题?~

pow函数是c语言的一个库函数。
函数原型:double
pow(double
x,
double
y);




能:计算x^y


值:计算结果
举例如下:
double x = 3.14, y=2, z;
z = pow(x, y); // 计算x^y,即3.14的平方注:使用pow函数的时候,需要将头文件#include
包含进源文件中。

pow()函数用来求x的y次幂,x、y及函数值都是double型 ,其原型为:double pow(double x, double y)。
实例代码如下:
#include
#include
void main()
{
double x = 2, y = 10;
printf("%f
",pow(x, y));
return 0;
}

扩展资料:
在调用pow函数时,可能导致错误的情况:
如果底数 x 为负数并且指数 y 不是整数,将会导致 domain error错误。
如果底数 x 和指数 y 都是 0,可能会导致 domain error?错误,也可能没有;这跟库的实现有关。
如果底数 x 是 0,指数 y 是负数,可能会导致?domain error 或pole error 错误,也可能没有;这跟库的实现有关。
如果返回值 ret 太大或者太小,将会导致range error 错误。
错误代码:
如果发生 domain error 错误,那么全局变量 errno 将被设置为 EDOM;
如果发生 pole error 或 range error 错误,那么全局变量 errno 将被设置为 ERANGE。
参考资料:
pow函数——百度百科

朋友,pow函数的原型是double pow(double x,double y),返回值是double型的x的y次方的值。对于形参x、y,传入比double型“短”的实参是正常的且不告警。这是因为,C/C++有约定,当一个“短”型值赋给一个“长”型值时,自动将“短”型值提升为“长”型值。所以你这里用两个int型的变量a、b充当pow的实参是完全合理合法的。但是,把pow(a,b)的返回值赋给int型变量c就不完全合法了,因为这是把“长”型值赋给一个“短”型值,会有精度损失,所以系统要提醒你是否出错了,就要警告。解决办法当然是把c声明为double型;但如果逻辑上只需要返回值的整数部分的话也可以c=(int)pow(a,b);。这样系统就知道你是有意取整,而不是疏忽,就不会告警了。仅供参考……

应该可以的,不过如果从浮点型到整型,小数点后面的数据会丢失的,造成精度不准确。你的程序里实参a,b,c都是整型,所以会有warning,数据精度丢失。

//楼下的说的都对,那我给你提供一个另外的方法的,直接不使用math头文件里的函数,利用其原理自己编写一个可以随意改变类型的函数。
//↓↓↓这是int的。
#include<stdio.h>
int pow(int x,int y)
{
    int z=1;
    for(;y>0;y--)
        z*=x;
    return z;
}
void main()
{
    int a=2,b=3;
    printf("%d",pow(a,b));
}


这个是不行的,但你可以强制转化为int

在计算很大的数时程序会有计算损失
例如pow(10,2)在某些情况下计算出来可能是99.9999999990之类的数,比100小一点,当你强转为int时会变成99,类似这种情况,在计算大数时更可能发生。
解决办法是加一个小数,比如(int)(pow(10,2)+0.1),结果就正常了,当然也可能因为这个小数出现大一的问题,原因同上


请C语言高手帮帮忙啊!我刚才用pow()函数试了一下,很奇怪啊,pow(10,3...
pow()函数返回的是一个实型数,而不是整型的 所以你有两个方式让它输出:printf("pow(10,i)=%.2f\\n",pow(10,i));或 printf("pow(10,i)=%d\\n",(int)(pow(10,i)));

C语言pow函数返回值是什么型的
pow的返回值为double类型。pow是C语言库函数中的数学函数之一,其声明为 double pow(double n, double r);声明与math.h。其功能为求n的r次幂,并作为返回值返回。

C语言里面怎么使用pow函数啊,比如我要计算10的x次方怎么写,为什么我写...
include<stdio.h>#include<math.h> \/\/必须引用头文件int main(){int x;double d ; \/\/pow返回结果为double类型printf("input x: " );scanf("%d", &x );d=pow(10,x) ; \/\/函数调用,两个参数,10,xprintf("10^%d=%.0lf\\n", x, d );return 0;} ...

power跟pow函数有什么区别语言里面有power这个函数吗
Pow函数C语言中的指数函数,属于C语言自带函数。 Power函数在C语言中没有,只在C++中出现,属于C++的STL库中的自定义函数,使用方法和Pow差不多。Pow函数的使用:1,要加入头文件 math.h 2,pow(x,y);\/\/其作用是计算x的y次方。x、y及函数值都是double型 例:计算2的5次方。源代码如下:#...

C++中乘方怎么输入
include <iostream> include <cmath> using namespace std;intmain(){ /*pow()函数可以传入两个参数pow(x,y),x表示乘方里的下标,y表示乘方里的指数,比如下方代码就表示2^3次方。*/ intx=2,y=3;cout<<pow(x,y)<<endl;return 0;} (注意:pow()函数的使用需要导入#...

power跟pow函数有什么区别语言里面有p
函数原型是 double pow (double base, double exponent);参数1是 底数,参数2是指数,都是双精度变量。power 是自定义函数,或是某语言中的函数,也许计算 数的几次方的值,也可能是功率计算。例如,自定义 计算 数的几次方的值 的函数:include <iostream> using namespace std;double power(...

C语言关于pow(int x,int y)函数
pow函数是参数是double型的

在C语言中指数运算怎么用呀
C语言中指针运算要用pow()函数,例如2的4次方要写成这样:pow(2,4);^在C语言中是一个位操作符,作用是按位异或。注意:pow()函数要包含math.h文件

C语言pow函数怎么用
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:double a = 1000, n = 10, p = 0.001;printf("%lf", a * pow(1+p, n) - a);3、编译器运行test.cpp文件,此时成功列出公式并计算...

C语言pow函数
sum=int(sum+b[i]*pow(16,c-1-i));return sum;} main(){ char a[N];printf("Please input a string:\\n");gets(a);printf("%d\\n",function(a));return 0;} 你可以试一下子,我已经再改的地方做了注释,而且,必须将char类型数字改成int型的数字,否则会产生不确定的错误!!!

洪洞县15737166429: C语言中pow函数文件不能使用,是什么原因? -
燕刷固本: 你好!在程序首部加#include,这样就可以了!!如果对你有帮助,望采纳.

洪洞县15737166429: c语言,pow函数.为什么pow的取值赋给整型变量能输出结果,而本身用%d怎么不能输出. -
燕刷固本: pow出的结果本身是double型的,书上写的是 double pow(double a,double b),, 就像定义double型参数j=2.3,你不能用%d输出,但是如果定义整型i,i取得的就只是整数部分

洪洞县15737166429: C语言函数pow用法问题; -
燕刷固本: 原型:在TC2.0中原型为extern float pow(float x, float y); ,而在VC6.0中原型为double pow( double x, double y ); 从原型中可以知道,x和y都是浮点数,都可以为负数,只是在不同的编译器中的声明不同.所以x小于0也可以.

洪洞县15737166429: C语言中幂函数 pow 的用法 -
燕刷固本: 原型:extern float pow(float x, float y); 用法:#include <math.h> 功能:计算x的y次幂. 说明:x应大于零,返回幂指数的结果. 举例: // pow.c #include <stdlib.h> #include <math.h> #include <conio.h> void main() { printf("4^5=%f",pow(4.,5.)); getchar(); } 相关函数:pow10

洪洞县15737166429: C语言pow函数为什么结果不一样 -
燕刷固本: 第一个计算(p1)时,r和n没有赋值; 第二个计算(p)时,r和n已经赋值; 所以计算结果不同. 你把第6行与第7行换一下位置,就一样了.

洪洞县15737166429: c语言pow的用法 -
燕刷固本: pow是指数函数,pow(10,n)就是10的n次方

洪洞县15737166429: 怎样使用C语言中的函数“POW”? -
燕刷固本: 1,要加入头文件 math.h2,pow(x,y);//其作用是计算x的y次方.x、y及函数值都是double型.

洪洞县15737166429: C语言 请问为什么这儿pow函数会报错? -
燕刷固本: 检查你的C++安装目录下\include子目录下的头文件math.h,该文件是否被替代、重编、删减,其中pow代码是否存在.还可以在编译后生成的atoi.lst文件中查找错误原因.

洪洞县15737166429: C语言:POW函数问题 -
燕刷固本: 这样就可以啦~~ #include<stdio.h> #include<math.h> main() { double i, b=2.0; for(i=0.0;i<4;i++) { printf("%f\n",pow(b,i)); //主要是这儿~~"%f\n"~~ } } 原因是咱们要输出的是个Double型的数据,而Double占空间很长,后边放的都是0,前边放的才是计算过的数字(因为要输出的值其实是整数),当用%d去输出的时候,由于int型数据占空间短,就只输出double数据后边的那部分了,也就是只有0~ 这样说不是很准确,但是很形象~~

洪洞县15737166429: c语言 pow函数用法 -
燕刷固本: 你首先要给我说你用的哪个编译器啊 我在VS2005下用你的相同代码得出的结果是三个数都是100 只是pow(float,float)才是正确的用法,你可以偿试把你的所有类型改一下试试,从你的测试结果来说,很可能是类型转换的时候的问题,int 型的i=2,被编译器转成float的时候有误差,只有1.999……,然后10的i次方不到100,只有99点几,然后转给a的时候再转换成int就只有99了,而你直接输入2的时候就没有问题.这只是一种猜测,你得把你的编译环境也作为条件给出来才能有准确的判断.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网