急!C程序的问题——在线等!

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:52:46
用递归法求N阶:
Pn(x)={ 1 (n=0)
x (n=1)
((2n-1)xP(n-1)(x)-(n-1)P(n-2)(x))/n (n>1)
我的C程序如下:
#include <stdio.h>
double Pn (double n,double x)
{
double m;
if (n==0)
m=1;
else if (n==1)
m=x;
else (n>1)
m=((2*n-1)*x*Pn(n-1,x)-(n-1)*Pn(n-2,x))/n;
return(m);
}
void main ()
{
double n,x,m;
printf ("please input n and x:");
scanf ("%d%d",n,x);
printf ("P%d(%d)=%d",n,x,m);
}
编译的时候提示:cpp(10) : error C2146: syntax error : missing ';' before identifier 'm'
可是在“m=((2*n-1)*x*Pn(n-1,x)-(n-1)*Pn(n-2,x))/n;”这一行有分号啊,怎么总提示错误呢?
请大虾们帮我调试一下,好了的话告诉错在那里,要准确的答案,不要猜测的。万分感谢!!!
可以了,谢谢!但我有个问题,在执行的时候,键入值以后,就弹出“···应用程序需要关闭···”,为什么会这样,有谁解决过这种问题呢?

else 后面就不能有条件了,去掉后面的(n>1),或者再在后面加上个else语句

你写的程序问题很多哦,我新写个给你
用递归法求N阶:
#include <stdio.h>
int Pn (int n)
{
int m;
if(n>1)
m=n*Pn(n-1);
else
m = 1;
return m;
}

void main ()
{
int n;
printf ("please input n:");
scanf ("%d",&n);
printf ("Pn(%d)=%d",n,Pn(n));
}

else (n>1)
m=((2*n-1)*x*Pn(n-1,x)-(n-1)*Pn(n-2,x))/n;

这里的第一行错了
else后面跟条件语句的话要加if

else if(n>1)
m=((2*n-1)*x*Pn(n-1,x)-(n-1)*Pn(n-2,x))/n;