C语言程序设计(第三版)何钦铭著 习题4-2

C语言程序设计(第三版)何钦铭著 习题4-2

习题一览表
1. C语言程序设计(第三版)何钦铭著 习题2-1
2.C语言程序设计(第三版)何钦铭著 习题2-2
3.C语言程序设计(第三版)何钦铭著 习题2-3
4.C语言程序设计(第三版)何钦铭著 习题2-4
5.C语言程序设计(第三版)何钦铭著 习题2-5
6.C语言程序设计(第三版)何钦铭著 习题2-6
7.C语言程序设计(第三版)何钦铭著 习题3-1
8.C语言程序设计(第三版)何钦铭著 习题3-2
9.C语言程序设计(第三版)何钦铭著 习题3-3
10.C语言程序设计(第三版)何钦铭著 习题3-4
11.C语言程序设计(第三版)何钦铭著 习题3-5
12.C语言程序设计(第三版)何钦铭著 习题4-1


题目

展开式求和。
输入一个实数x,
计算并输出下式的和,
直到最后一项的绝对值小于0.000 01,计算结果保留2位小数。
要求定义和调用函数 fact(n)计算n的阶乘,可以调用 pow () 函数求幂。
试编写相应程序。
在这里插入图片描述


分析过程

输入

条件:输入一个实数x

输出

条件:计算并输出下式的和,
直到最后一项的绝对值小于0.000 01,计算结果保留2位小数。

代码

#include <stdio.h>
#include <math.h>
double fact(int n);/*声明函数,计算阶乘*/

int main () {
    
    
	/*定义变量*/
	double x;                                                               /*定义变量,存储输入的x*/
	double m;                                                               /*定义变量,计算每一项值*/
	double sum = 1.0;                                                       /*定义变量,计算结果和,初值为1*/
	/*赋值*/
	printf("请输入x:\n");                                                  	/*输入提示*/
	scanf("%lf \n", &x);                                                    /*输入并赋给变量*/
    /*计算*/
    for(int i=1 ; ; i++){
    
    /*直到最后一项的绝对值小于0.000 01结束计算,即每项绝对值必须大于0.000 01*/
        m = pow(x, i)/ fact(i);
        sum = sum + m;
        if(fabs(m)< 0.00001) break;

    }
    
    printf("%lf和为:%.4lf \n", x, sum);                               		/*输出计算结果*/
	return 0;
}

double fact(int n){
    
    
    double sum=1.0;                                                         /*定义变量,存储阶乘和*/
    for(int i=1;i<=n;i++){
    
                                                      /*循环遍历,将每个元素乘到sum上*/
        sum *=i;
    }
    return sum;
}

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43228814/article/details/112345296