C幂函数负指数无幂()

uqxowvwt  于 2023-11-16  发布在  其他
关注(0)|答案(3)|浏览(99)

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

  1. #include<stdio.h>
  2. //* power caculator function
  3. int power(x,y)
  4. {
  5. float p=1.00;
  6. int i;
  7. if (y<0){
  8. y=-1*y;
  9. x=1/x;
  10. }
  11. for (i=1;i<=y;i++)
  12. {
  13. p=p*x;
  14. }
  15. return p;
  16. }
  17. //* main gets input, calls power caculator and prints result'
  18. int main()
  19. {
  20. int b;
  21. int e;
  22. float p;
  23. printf("enter base");
  24. scanf("%d",&b);
  25. printf("enter exponent");
  26. scanf("%d",&e);
  27. p=power(b,e);
  28. printf("%d to the power of %d is %.2f",b,e,p);
  29. return 0;
  30. }
  31. //* I am NOOB

字符串

4jb9z9bj

4jb9z9bj1#

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

  1. float power(x,y)
  2. {
  3. float p=1.00;
  4. float xx = (float)x;
  5. int i;
  6. if (y<0){
  7. y=-1*y;
  8. xx=1/xx;
  9. }
  10. for (i=1;i<=y;i++)
  11. {
  12. p=p*xx;
  13. }
  14. return p;
  15. }

字符串

展开查看全部
lp0sw83n

lp0sw83n2#

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

gg0vcinb

gg0vcinb3#

  1. /* Hope this is useful to someone in the future :-) */
  2. double power (double n, int p){
  3. int i;
  4. double pow = 1;
  5. if (p > 0)
  6. {
  7. for (i = 1; i <= p; i++)
  8. {
  9. pow *= n;
  10. }
  11. return pow;
  12. }
  13. else
  14. {
  15. for (i = 0; i > p; i--)
  16. {
  17. pow *= 1/n;
  18. }
  19. return pow;
  20. }
  21. }

字符串

展开查看全部

相关问题