#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
去掉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));
}