题目如下:用递归方法求n解勒让德多项式
#include<stdio.h>
#include<stdlib.h>
int a,b,c,y,z,i,j,k,n;
double x;
double pnx(int,double);
int main()
{
printf(“请输入n(n>=0)和x:\n\n”);
scanf(“%d %lf”,&n,&x);
if(n<0) printf(“输入数据错误!”);
else printf(“%lf”,pnx(n,x));
return 0;
}
double pnx(int a,double b)
{
if(a=0) k=1;
else if(a=1) k=x;
else while(a>2) k=((2*a-1)*b*pnx(a-1,b)-(a-1)*pnx(a-2,b))/a;
return k;
}
但本人输入的n>=2时,x无论输入多少,都是输出x原本的值,求高手解答,谢谢。
#include<stdio.h>
#include<stdlib.h>
int a,b,c,y,z,i,j,k,n;
double x;
double pnx(int,double);
int main()
{
printf(“请输入n(n>=0)和x:\n\n”);
scanf(“%d %lf”,&n,&x);
if(n<0) printf(“输入数据错误!”);
else printf(“%lf”,pnx(n,x));
return 0;
}
double pnx(int a,double b)
{
if(a=0) k=1;
else if(a=1) k=x;
else while(a>2) k=((2*a-1)*b*pnx(a-1,b)-(a-1)*pnx(a-2,b))/a;
return k;
}
但本人输入的n>=2时,x无论输入多少,都是输出x原本的值,求高手解答,谢谢。
解决方案
20
if(a=0)
改成
if(a==0)
else if(a=1)
改成
else if(a==1)
改成
if(a==0)
else if(a=1)
改成
else if(a==1)
20