
C语言 用递归法求n阶勒让德多项式的值
代码如下:#include<stdio.h>main(){#definex2;intn;floatP(intn);floatc;c=P(n);printf("%f",c)...
代码如下:
#include<stdio.h>
main()
{
#define x 2;
int n;
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(n>=1)
m=((2*n-1)*x-P(n-1)-(n-1)*P(n-2))/n;
return m;
}
哪里出错了呢?万分感谢!! 展开
#include<stdio.h>
main()
{
#define x 2;
int n;
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(n>=1)
m=((2*n-1)*x-P(n-1)-(n-1)*P(n-2))/n;
return m;
}
哪里出错了呢?万分感谢!! 展开
展开全部
define语句末尾不要加分号
if(n>=1)
m=((2*n-1)*x-P(n-1)-(n-1)*P(n-2))/n;
改成
if(n>1) //==1是第二种情况写过了
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n; //-改成*
n都没赋值就用了啊。。。
正确代码如下:
#include<stdio.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(n>1)
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n;
return m;
}
if(n>=1)
m=((2*n-1)*x-P(n-1)-(n-1)*P(n-2))/n;
改成
if(n>1) //==1是第二种情况写过了
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n; //-改成*
n都没赋值就用了啊。。。
正确代码如下:
#include<stdio.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(n>1)
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n;
return m;
}
追问
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n; //-改成*
把-改为*就和题目不一样了啊……
追答
你自己百度一下勒让德多项式吧,看看到底是-还是*
展开全部
具体代码如下:
#include<stdio.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(n>1)
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n;
return m;
}
#include<stdio.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(n>1)
m=((2*n-1)*x*P(n-1)-(n-1)*P(n-2))/n;
return m;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码如下:
#include<stdio.h>
#define x 2
float P(int n);
main()
{
int n;
float c;
P(n);
c=P(n);
printf("%f",c);
}
float P(int n)
{
float m;
if(n==0)m=1;
if(n==1)m=x;
if(n>1)
m=((2*n-1)*x-P(n-1)-(n-1)*P(n-2))/n;
return m;
}
没有运行果,改了点语法错误,你试试,不行追问就行
#include<stdio.h>
#define x 2
float P(int n);
main()
{
int n;
float c;
P(n);
c=P(n);
printf("%f",c);
}
float P(int n)
{
float m;
if(n==0)m=1;
if(n==1)m=x;
if(n>1)
m=((2*n-1)*x-P(n-1)-(n-1)*P(n-2))/n;
return m;
}
没有运行果,改了点语法错误,你试试,不行追问就行
追问
谢啦 编译没有错误 不过我是想问你有哪些语法错误…………
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改成:
if(n>1)
m=((2*n-3)*x*P(n-1)-(n-1)*P(n-2))/n;
return m;
if(n>1)
m=((2*n-3)*x*P(n-1)-(n-1)*P(n-2))/n;
return m;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream.h>
int ploy(int n,int x);
int main()
{
int n,x,p;
cout<<"Enter two number:";
cin>>n>>x;
p=ploy(n,x);
cout<<p<<endl;
}
int ploy(int n,int x)
{
if(n==0)
return 0;
if(n==1)
return x;
else
return((2*n-1)*x*ploy(n-1,x)-(n-1)*ploy(n-2,x))/n;
}
int ploy(int n,int x);
int main()
{
int n,x,p;
cout<<"Enter two number:";
cin>>n>>x;
p=ploy(n,x);
cout<<p<<endl;
}
int ploy(int n,int x)
{
if(n==0)
return 0;
if(n==1)
return x;
else
return((2*n-1)*x*ploy(n-1,x)-(n-1)*ploy(n-2,x))/n;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询