首先把你的float p改成int p再说,int,float,double,char的占用字节不同,而且p函数中返回的是Int数据,可是他是一个float数据,打印的时候又是d%,都是些基础问题啊。
另外一些问题是那个公式,不能那么写的。你把原题发出来,我给你写吧。。。
记得用到一些数学公式的时候记得加#include
#include
float p (int n,int x)
{
float f;
//f=p(n,x);
if(n==0)
f=1;
else if (n==1)
f=(float)x;
else if (n>=1)
f=((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n;
return f;
}
void main (){
int n,x;
printf("请输入n,x的值:");
scanf("%d%d",&n,&x);
printf("结果为:%d\n",p(n,x));
}
程序已经可以运行了,但不知道这是干嘛的。。。
#include
float p (int n,int x)
{
int f;
if(n<0)
{
f = -1;
printf("error, n should be larger than 0");
}
else if(n==0)
{
f = 1;
}
else if (n==1)
{
f = x;
}
else if (n>1)
{
f=((2*n-1)*x*p(n-1, x)-(n-1)*p(n-2,x))/n;
}
return f;
}
void main ()
{
int n,x;
printf("请输入n,x的值:");
scanf("%d%d",&n,&x);
printf("结果为:%d\n",p(n,x));
getchar();
}