帮我找一下错。。。。。

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));
}

...全文
75 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
z_gq 2001-08-28
  • 打赏
  • 举报
回复
昏倒。。。。。。。这儿出错了。。。
fsb_12345 2001-08-28
  • 打赏
  • 举报
回复
#include "stdio.h"
hermite(float x,int n) 改为: float hermite(float x,int n)
{ int i;
double x0,x1,x2;
x0=1.0;
x1=2.0*x;
switch(n)
{ case 0:
return(x0);

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧