递归求解
为什么输出的全是0.00000~,没有数字?
#include "stdio.h"
int pow(int x,int n)
{
if(n == 0 && x == 0)
return 0;
if(n == 0 && x != 0)
return 1;
else
return x*pow(x,n-1);
}
int main()
{
float f=pow(2,23)/pow(2,30);
printf("第23天的莲花占莲花池的%2.30f\n",f);
return 0;
} printf 递归
[解决办法]
整数相除就没了
你应该
float f=((float)pow(2,23))/pow(2,30);
[解决办法]
#include "stdio.h"
float pow(int x,int n)//整数相除会取整的。。就变为0了。。可以把返回类型改为float。。
{
if(n == 0 && x == 0)
return 0;
if(n == 0 && x != 0)
return 1;
else return x*pow(x,n-1);
}
int main()
{
float f=pow(2,23)/pow(2,30);
printf("第23天的莲花占莲花池的%2.30f\n",f);
return 0;
}