fkyue 发表于 2023-4-4 00:11:58

求助

求助大家,写的这两个代码,自己没找出来问题,该引用的头文件在前边已引用,麻烦大家帮忙找找问题

isdkz 发表于 2023-4-4 01:23:11

本帖最后由 isdkz 于 2023-4-4 01:25 编辑

在 Pow 函数中,条件应该从 k > 1 更改为 k > 0。

代码修改如下:
#include<stdio.h>

double Pow(int n, int k)
{
    if(k == 0)
      return 1;
    else if(k > 0) // 修正逻辑错误,将条件从 k > 1 改为 k > 0
      return n * Pow(n, k-1);
    else
      return 1.0/(Pow(n, -k));
}

int main()
{
    int n, k = 0;
    scanf("%d %d", &n, &k);
    double ret = Pow(n, k);
    printf("%lf\n", ret);
    return 0;
}

canfeng0522 发表于 2023-4-4 14:46:32

本帖最后由 canfeng0522 于 2023-4-4 14:58 编辑

第一个:条件里面k>1,将k=1的情况给漏掉了吧
第二个:if(is_prime==1),调用函数都没有给函数传参数

fkyue 发表于 2023-4-6 23:32:45

canfeng0522 发表于 2023-4-4 14:46
第一个:条件里面k>1,将k=1的情况给漏掉了吧
第二个:if(is_prime==1),调用函数都没有给函数传参数

后来发现问题啦,谢谢解答噢

fkyue 发表于 2023-4-6 23:33:57

isdkz 发表于 2023-4-4 01:23
在 Pow 函数中,条件应该从 k > 1 更改为 k > 0。

代码修改如下:

谢谢解答噢,已经修改啦
页: [1]
查看完整版本: 求助