主帖
1 条回复
C新手求助:题目是-- a=0.5^n/n! , b = 0.5^(n+1)/(n+1)!, c=e^0.5; 令s1 =( b - a) / b, s2= (c - a) / c,当|s1|<0.05%时,则停止计算,并输出前面n,s1,s2的值。下面是我写的程序,到底哪里出错了,应该怎么写,主要是我不知道这个n怎么确定,求大神帮忙,谢谢。
#include<stdio.h>
#include<math.h>
double factorial(int n);
int main()
{
float c =exp(0.5);
float a, b, s1, s2;
int n;
a = pow(0.5, n) / factorial(n);
b = pow(0.5, n+1) / factorial(n+1);
for(n =1; fabs(s1 = (b - a) / b) > 0.0005; n++)
{
s2 = (c - a) / c;
printf("n = %d, s1 = %f, s2 = %f.n", n, s1, s2);
}
}
double factorial(int n)
{
double temp =1;
int i;
for(i = 1; i <= n; i++)
{
temp *= i;
}
return temp;
}