帮我找一下错。。。。。
z_gq 2001-08-28 01:54:39 为什么herm与hermite这两个函数的返回值不一样?hermite函数哪儿错了?
herm用的是递归,hermite用的是递推。。。。
#include "stdio.h"
hermite(float x,int n)
{ int i;
double x0,x1,x2;
x0=1.0;
x1=2.0*x;
switch(n)
{ case 0:
return(x0);
case 1:
return(x1);
default:
if(x<=1)
printf("\nError\n");
else
for(i=2.0;i<=n;i+=1.0)
{ x2=-2.0*(i-1.0)*x0+2.0*x*x1;
x0=x1;
x1=x2;}
return((float) x2);
}
}
float herm(float x,int n)
{ float x0,x1,x2;
double he;
x0=1;
x1=2*x;
switch(n)
{ case 0:
return(x0);
case 1:
return(x1);
default:
if(x<=1)
printf("\nError\n");
else
he=2*x*herm(x,n-1)-2*(n-1)*herm(x,n-2);
return((float) he);}
}
main()
{ int a;
float b;
printf("\nplease enter two numbers\n");
scanf("%f%d",&b,&a);
printf("herm(%f,%d)=%f\nhermite(%f,%d)=%f\n",b,a,herm(b,a),b,a,hermite(b,a));
}