c - 递归函数的一些问题
问题描述
我尝试使用递归函数来创建我的幂函数。问题是:“编写一个幂函数,它可以与基数(自然)和幂(整数)一起使用”。但是当用户“给我”负能量时,就会出现麻烦。请找出错误。不需要所有 printf 函数(main 中的 printf 除外)。
#include <stdio.h>
int Power(int power, float base)
{
printf("%f\n", base);
printf("POWER%d\n", power);
if (power == 0)
{
return 1;
}
else
{
if (power < 0)
{
return Power(power *= -1, 1 / base);
}
else
{
if (power == 1)
{
printf("%f\n", base);
// printf("POWER%d\n",power);
return base;
}
else
{ //printf("%f\n",base);
//printf("POWER%d\n",power);
return base * Power(power - 1, base);
}
}
}
}
int main()
{
int a; //power
printf("Enter a power: ");
scanf("%d", &a);
printf("Enter a base: ");
float b; //base
scanf("%f", &b);
if (b == 0)
printf("0");
else
{
float y = Power(a, b);
printf("%f", y);
}
}
解决方案
试试这个是否定的:
if (power<0)
{
return 1/Power(-power, base);
}
推荐阅读
- r - 如何根据条件更改列表中多个数据框中的列名称?
- reactjs - 使用其他钩子时 usePrevious 可靠吗?
- c++ - 我无法让我的 MergeSort 实现运行
- javascript - 使用 AJAX 在传单上重新加载热图
- java - 如何在 Android 上为 Highcharts 正确配置 DateTime 轴?
- hibernate - 比较 dateCreated 的查询不适用于在 Grails 3.3.10 的测试事务中创建的测试数据
- matplotlib - 从 matplotlib.animation 加载“FuncAnimation”时遇到问题
- flutter - 我该如何解决颤振错误
- javascript - 如何在页面滚动上创建画布动画
- arrays - 如何在 Ruby 中将数组添加到 CSV 文件的列中?