Bootstrap

C语言习题:循环结构部分——调用函数展开式求和

题目:展开式求和。输入一个实数 x,计算并输出下式的和,直到最后一项
的绝对值小于 0.000 01 ,计算结果保留 4 位小数。要求定义和调用函数 fact(n)
计算 n 的阶乘,可以调用 pow() 函数求幂。试编写相应程序。
𝑠 = 1 +x+x^{2}/2!+x^{3}/3!+x^{4}/4!+...

解析:

     1.要求循环的最后一项绝对值小于0.00001,那么循环的范围我们就知道了
     2.阶乘部分我们使用函数计算
     3.主函数计算这个和

代码:


#include<stdio.h>
#include<math.h>
double fact(int n);
int main(){
	int n;
	double s,x,eps,item;
	printf("input x:");
	scanf("%lf",&x);
	s=0;
	item=1;
	eps=0.00001;
	n=1;
	while(fabs(item)>=eps){
		s+=item;
		item=pow(x,n)/fact(n);
		n++;
	}
	//循环结束后,最后一项没有加
	s = s+item;
	printf("s=%.4lf\n",s); 
	return 0;
} 
//计算阶乘的值
double fact(int n){
	int i;
	double result=1;
	for(i=1;i<=n;i++){
		result *=i;
	}
	return result;
}

;