|
发表于 2024-4-16 16:40:17
|
显示全部楼层
你的代码基本上是正确的,只是需要对函数返回类型进行修改。因为结果可能是小数,所以将返回类型改为double。另外,要注意y为0的情况,应该返回1而不是0。
修改后的代码如下:
- #include <stdio.h>
- double power(int x, int y)
- {
- if (y == 1)
- {
- return x;
- }
- else if (y == 0)
- {
- return 1;
- }
- else
- {
- if (y % 2 == 0)
- {
- return power(x, y / 2) * power(x, y / 2);
- }
- else
- {
- return x * power(x, y - 1);
- }
- }
- }
- int main()
- {
- int a, b;
- scanf("%d%d", &a, &b);
- printf("%lf", power(a, b));
- return 0;
- }
复制代码
现在你可以输入两个整数,然后程序会计算并打印出幂的值。注意,这里使用`%lf`来输出double类型的值。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|