喜欢偷懒不做作业:请高手帮我看看我的程序错在哪

来源:百度文库 编辑:高校问答 时间:2024/05/04 08:16:49
#include<iostream>
using namespace std;
float main()
{ float P(int n,int x);
int n,x;
cout<<"please entre n=";
cin>>n;
cout<<"x=";
cin>>x;
cout<<"anwser is"<<P(n,x);
}
float P(int n,int x)
{
if(n==0)
P(n,x)=1;
else if(n==1)
P(n,x)=x;
else if(n>1)
P(n,x)=(2n-1)*x*P(n-1,x)/n-(n-1)*P(n-2,x)/n;
return P(n,x);
}
"P(n,x)=(2n-1)*x*P(n-1,x)/n-(n-1)*P(n-2,x)/n;"这一句的2n改为2*n.就OK了......自己发现了.还是要谢谢这位兄弟

#include <iostream>
using namespace std;
float P(int n,int x, float back1, float back2);

void main()
{
float back1,back2; // back1=P(n-1,x),back2=P(n-2,x)
int n,i;
float x;
float res; // 结果

cout<<"please entre n=";
cin>>n;
cout<<"x=";
cin>>x;
back2 = 1.0;
back1 = (float) x;

if (n == 0) {res = 1.0;}
else if (n == 1) {res = (float) x;}
else {
for (i=2;i<=n;i++){
res = P(i,x,back1,back2);
back2=back1;
back1=res;
}; // end for

};
cout<<"anwser is: "<< res;

exit(0);
}

float P(int n,int x, float back1, float back2 )
{
float y;
y = (2.0 * n - 1.0) * x * back1 / n - (n-1) * back2 / n;
return y;
}