求解一个问题,为什么 y<0 时,输出结果不对?
#include<stdio.h>double mhs(double x,int y)
{
if (y==1)
return x;
else
if(y>1)
return x * mhs(x,y-1);
else
if(y<0)
return 1.0/x*mhs(x,(-y)-1);
}
void main()
{
int x,y;/*定义三个变量*/
double f;
printf("enter two number(x,y):");
scanf("%d%d",&x,&y); /*输入xy的值*/
f=mhs(x,y); /*调用自定义mhs函数*/
printf("%f\n",f); /*输出f*/
}
为什么y<0时,输出结果不对?