void main()
{int n,i;
float t,fm=1,e=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{fm=fm*i; t=1.0/fm; e=e+t; }
printf("n=%d,e=%f\n",n,e);
}
6. 已知某球从 80 米高度自由落下,落地后反复弹起,每次弹起的高度都是上次高度的一半。求此球 8
次落地所经过的总路程。
答:程序参见文件 Cprogram\xt5_4_06.c
#include "stdio.h"
void main()
{int n;
float s=80,h=s/2;
for(n=2;n<=8;n++)
{s=s+2*h;
h=h/2;
}
printf("s=%f\n",s);
}
7. 用牛顿迭代法求高次方程 f(X)=2x
3
-4x
2
+5x-18=0 的根。牛顿迭代公式为:X
n
=X
n-1
-f(X
n-1
)/f’(X
n-
1
),其中 f’(X
n-1
)为导函数在点 X
n-1
的值。
答:程序参见文件 Cprogram\xt5_4_07.c
#include "stdio.h"
#include "math.h"
main()
{float x,f,f1;
x=8; // x 的初值可为任意值
do
{f=2*x*x*x-4*x*x+5*x-18; f1=6*x*x-8*x+5; x=x-f/f1;
}while(fabs(f)>0.00001);
printf("x=%f,f=%f\n",x,f);
}
8. 用弦截法求高次方程 2x
3
-3x
2
+7x-13=0 的根。
答:程序参见文件 Cprogram\xt5_4_08.c
#include "stdio.h"
#include "math.h"
main()
{float a,b,c,fa,fb,fc;
do
{printf("Enter a,b:");
scanf("%f,%f",&a,&b);