C幂函数负指数无幂()

uqxowvwt  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(84)

我正在尝试用C语言做一个学习用的幂计算器,但是当指数为负时,它总是返回0.00,请帮助。
完整代码:

#include<stdio.h>
//*  power caculator function

int power(x,y)
{
   float p=1.00;
   int i;
    if (y<0){
        y=-1*y;
        x=1/x;
    }
    for (i=1;i<=y;i++)
    {
        p=p*x;
    }

return p;
}


//*  main gets input, calls power caculator and prints result'
int main()
{
int b;
int e;
float p;
printf("enter base");
scanf("%d",&b);
printf("enter exponent");
scanf("%d",&e);
p=power(b,e);
printf("%d to the power of %d is %.2f",b,e,p);
return 0;
}
//* I am NOOB

字符串

4jb9z9bj

4jb9z9bj1#

您使用整数来保存十进制值,在本例中使用x和幂函数的返回类型。
尝试:

float power(x,y)
{
   float p=1.00;
   float xx = (float)x;
   int i;
    if (y<0){
        y=-1*y;
        xx=1/xx;
    }
    for (i=1;i<=y;i++)
    {
        p=p*xx;
    }

return p;
}

字符串

lp0sw83n

lp0sw83n2#

明确定义x和y的数据类型,然后调整返回数据类型。

gg0vcinb

gg0vcinb3#

/* Hope this is useful to someone in the future :-) */

double power (double n, int p){
    int i;
    double pow = 1;

    if (p > 0)
    {
        for (i = 1; i <= p; i++)
        {
            pow *= n;

        }   
            return pow;
    } 
    else
    {
        for (i = 0; i > p; i--)
        {
            pow *= 1/n;
        }
            return pow;
    }
}

字符串

相关问题