首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

递归求解解决方案

2013-07-08 
递归求解为什么输出的全是0.00000~,没有数字?#include stdio.hint pow(int x,int n){if(n 0 && x

递归求解
为什么输出的全是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;
}

热点排行