define語句末尾不要加分號
成都創(chuàng)新互聯(lián)主營平塘網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),平塘h5微信小程序開發(fā)搭建,平塘網(wǎng)站營銷推廣歡迎平塘等地區(qū)企業(yè)咨詢
if(n=1)
m=((2*n-1)*x-P(n-1)-(n-1)*P(n-2))/n;
改成
if(n1) //==1是第二種情況寫過了
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n; //-改成*
n都沒賦值就用了啊。。。
正確代碼如下:
#includestdio.h
main()
{
#define x 2
int n=10;
float P(int n);
float c;
c=P(n);
printf("%f",c);
}
float P(int n)
{
float m;
if(n==0)m=1;
if(n==1)m=x;
if(n1)
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n;
return m;
}
#includeiostream
using namespace std;
double pnx(int ,double);
int main(){
double n,x;
cout"請輸入n(整數(shù)),x"endl;
cinnx;
cout"Pnx(n,x)="pnx(n,x)endl;
return 0;
}
double pnx(int n,double x){
if(n==0) return 1.0;
if(n==1) return x;
return ((2*n-1)*x*pnx(n-1,x)-(n-1)*pnx(n-2,x))/n;
}
所謂遞歸就自己調(diào)用自己,再無其他
#includestdio.h
float myfunction(int n,int x)
{
if(0==n)
{
return 1;
}
if(1==n)
{
return x;
}
else
{
return (2*n-1)*x-myfunction(n-1,x)-(n-2)*myfunction(n-2,x)/n; //主要問題出在這里,2x 要寫成2*x,還有你仔細看看就知道了
}
} //這里加括號
void main()
{
int n,x;
float result;
printf("please imput n,x");
scanf("%d,%d",n,x);
result=myfunction(n,x);
printf("the result is:%f\n",result);
}