用递归方法求px(x,n)=x-x^2+x^3-x^4+........(-1)^(n-1)x^n,下面程序有什么问题,输出只是x的值。

#include<stdio.h>#include<math.h>floatpx(floatx,intn){/*floatterm=1.0;floatsum=0,sign... # include <stdio.h>
# include<math.h>

float px(float x,int n)
{
/* float term=1.0;
float sum=0,sign=-1.0;
while(n)
{ sign*=-1;
term=term*x*sign;
n--;
sum=sum+term;
}这里是我自己写的非递归算法,验证用*/
float sum=0;
if(n=1)
return x;
else
return x*(1-px(x,n-1));

}
int main()
{

int n=4;
float x=3.0,sum=0;
sum=px(x,n);
printf("%f",sum);
return 0;
}
展开
 我来答
听不清啊
高粉答主

2015-04-05 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
你的if(n=1)写错了,应为:
if(n==1)

你的非递归也写错了,sign*=-1; term=term*x*sign;应为:
temp=-1.0;
........
while(n)
{term=-term*x; //sign这个变量不用了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式