mbr膜中水回用设备:请问这个程序哪儿错了?

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 10:25:03
例子如下:
#include<iostream>
using namespace std;
int main()
{int n,x;float p;

cout<<"请输入n、x:";
cin>>n>>x;

if(n==0) p=1;
else if(n==1) p=x;
else if(n>1) p=((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n;/*就是这一句,问题出在这儿,如果把这句去掉,程序就正确,然而我去始终找不出,为什么?*/

cout<<"输出n="<<n<<",x="<<x<<endl;
cout<<"p(n,x)="<<p<<endl;

return 0;}
能不能不用调用格式.书上用的是调用格式,正确,我有例题,

你这里的p只是一个float变量而已,不是一个函数,因此p((n-1),x),p((n-2),x)这样的写法都是错误的。
按照你的想法,应该把p改成一个函数float p(int n,int x)。
float p(int n,int x)
{
if (n==0) return 1;
if (n==2) return x;
if (n>1) reutrn ((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/n;/
}

我的C语言 垃圾

p(n,x)是个函数吧,你有没有对它进行定义呢?

就是2楼的意思