codingt 2021-10-30 17:48 采纳率: 100%
浏览 24
已结题

C语言有问题请求帮助

#include <stdio.h>
#include <stdlib.h>

double  getpower(int x,int y)
{int i;
double s;
for(i=1;i<=y;i++)
{if(y==0)
{s=1;
}
else{
s=x*getpower(x,y-1);
}
}
return s;
}
int main()
{int x,y;
scanf("%d%d",&x,&y);
printf("%d的%d次方结果是:%f",x,y,getpower(x,y));
return 0;}

为什么我输入3 3结果总是:
3 3
3的3次方结果是:0.000000

  • 写回答

1条回答 默认 最新

  • a5156520 2021-10-30 18:47
    关注

    去掉for循环就可以了。

    如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    double  getpower(int x,int y)
    {
        int i;
        double s;
    
        if(y==0)
        {
            s=1;
        }
        else
        {
            s=x*getpower(x,y-1);
        }
    
        return s;
    }
    
    int main()
    {
        int x,y;
        scanf("%d%d",&x,&y);
        printf("%d的%d次方结果是:%f",x,y,getpower(x,y));
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 修改了问题 10月30日
  • 修改了问题 10月30日
  • 展开全部