c语言中的幂函数pow用法 谁能帮我用pow编个程序求3.5的14次方

c语言中的幂函数pow用法 谁能帮我用pow编个程序求3.5的14次方,第1张

C语言中的数学函数:pow原型:在TC20中原型为extern

float

pow(float

x,

float

y);

,而在VC60中原型为double

pow(

double

x,

double

y

);

头文件:mathh

功能:计算x的y次幂。

返回值:x应大于零,返回幂指数的结果。

返回类型:double型,int,float会给与警告!

举例1:(在VC60中运行通过)

#include

<mathh>

#include

<stdioh>

int

main(void)

{

double

x

=

20,

y

=

30;

printf("%lf

raised

to

%lf

is

%lf\n",

x,

y,

pow(x,

y));

return

0;

}

程序对pow函数的使用有误。pow函数参数类型是double型,而不是int型。对于int型变量,使用时要强制改为double型。

if(x==pow(a,3)+pow(b,3)+pow(c,3))

改为

if(x==pow((double)a,3)+pow((double)b,3)+pow((double)c,3))

即a、b、c前都加(double)

不是POW函数问题而是

优先级的处理上出问题了,对于两处优先级处理上应做如下修改:

#include<stdioh>

#include<mathh>

int

main()

{

int

t=1,i=0,w,d,f;

int

a[20];

long

int

m;

printf("please

input

a

mumber:");

scanf("%ld",&m);

for

(t=1,i=0;t>=0;t++,i++)

{

f=m/((int)pow(100,(double)t));//此处优先级有问题,此为参考调整

d=(int)(((m%((int)pow(100,(double)t)))/pow(100,(double)(t-1))));

//上面这条语句也有优先级问题,此为参考调整,

if

(f>=1)

a[i]=d;

else

{

w=t;

a[i]=d;

break;}

}

printf("this

number

is

%d

wei

nuber\n",w);

for

(

i=0;i<t;i++)

{

printf("di

%d

shu

is

%d\n",i+1,a[i]);

}

printf("qi

ni

xu

shu

is\n");

for

(

i=0;i<t;i++)

printf("%d",a[i]);

}

调整运行后没有问题…………

pow 函数是 double 型。是否你的编译器引入了误差。你只是处理4位数,你可以自己写 my_pow(int x):

int my_pow(int x){

int i,v=1;

if (x==0)return 1;

for (i=1;i<=x;i++) v=v10;

return v;

}

-------------

调用:

int guess,i,temp,p;

scanf("%d",&guess);

for (i=3;i>=0;i--){

temp=guess/my_pow(i);

p =tempmy_pow(i);

guess = guess-p;

}

不会引入误差。

以上就是关于c语言中的幂函数pow用法 谁能帮我用pow编个程序求3.5的1/4次方全部的内容,包括:c语言中的幂函数pow用法 谁能帮我用pow编个程序求3.5的1/4次方、C语言,如何防止pow(,)函数重载,下面这个程序如何改、一个C 语言问题pow函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9833490.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存