解题思路以及注意事项:

  1. 定义fact()函数用for()循环计算阶乘,然后传值回到主函数。

  2. 用for()函数计算很多阶乘的和。

  3. 输入输出格式注意,中英文注意,保留有效位数。

实例代码:

include"stdio.h"
double fact(int n);
int main()
{
    int s,i;
    double sum=0;
    scanf("%d",&s);
    for(i=1;i<=s;i++)
    {
          sum+=1.0/fact(i);
    }
    printf("sum=%.5lf",sum);
    return 0;
}
double fact(int n)
{
    int i;
    double item=1;
    for(i=1;i<=n;i++)
    {
            item*=i;
    }
    return item;
}

看看大家还有什么不懂的,请在下方评论区留言

点赞(8)
 

0.0分

33 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 28 条评论

crj 9月前 回复TA
double fact(double n)
{
	if (n == 1)
		return 1;
	return fact(n - 1)*n;
}
int main()
{
	double n, sum = 0;;
	scanf("%lf", &n);
	for (int i = 1; i <= n; i++)
		sum += 1/fact(i);
	printf("sum=%.5lf", sum);
	return 0;
}
向志权 10月前 回复TA
#include<stdio.h>
double fact(int k)
{
	double a=1;
	int i;
	for(i=1;i<=k;i++)
	{
		a*=i;
	}
	return a;
}
double fact(int k);
int main()
{
	int i,n;
	double sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		sum+=1/fact(i);
	}
	printf("sum=%0.5lf\n",sum);
	return 0;
}
悠游 1年前 回复TA
@kkkk 像sum这种统计和的变量记得要赋0,运行不了是因为你scanf 取地址符漏了,兄弟是写太急了吧,还有题目要求要有sum=的
旋转跳舞我闭着眼 1年前 回复TA
@橘 输出格式错误,是printf("sum=%.5lf",sum);  你输出少了 sum=
2年前 回复TA
#include <stdio.h>

double fact(int k);

int main()
{
    int n = 0;
    scanf("%d",&n);
    int k = 0;
    double sum = 0.0;
    for(k=1;k<=n;k++)
    {
        sum = sum + 1/fact(k);
    }
    printf("%.5lf",sum);
    return 0;
}

double fact(int k)
{
    double i = 0.0;
    double a = 1.0;
    for(i=1;i<=k;i++)
    {
        a = a * i;
    }
    return a;
}
求大佬给看看,为什么一直都是错的
kkkk 2年前 回复TA
#include<stdio.h>
double fact(int k)
{int i; double sum; double x=1;
   for(i=1;i<=k;++i)
  { 
     x*=i;
    sum+=(1/x);
  }
   return sum;
}
int main()
{
    int a; double b;
    scanf("%d",a);
    b=fact(a);
    printf("%.5lf",b);
    return 0;
}
我哪里错了,怎么运行不出来
kkkk 2年前 回复TA
#include<stdio.h>
double fact(int n)
{int i; double sum; double x=1;
   for(i=1;i<=n;++i)
  { 
     x*=i;
    sum+=(1/x);
  }
   return sum;
}
int main()
{
    int a; double b;
    scanf("%d",a);
    b=fact(a);
    printf("%.5lf",b);
    return 0;
}
白的像碳 2年前 回复TA
@唐伟龙 看不下去了,你的fact函数sum从i=0开始乘,能对才怪
白的像碳 2年前 回复TA
@leo 你的fact函数怎么是i++  ?
leo 2年前 回复TA
double fact(int i)
{
	double sum = 1;
	for (int j = 1;j <= i;i++)
	{
		sum = sum * j;

	}
	return sum;
}
int main()
{
	int a;
	double sum = 0;
	scanf_s("%d", &a);
	for (int i = 1;i <= a;i++)
	{
		sum = sum + 1 / fact(i);
	}
	printf("sum=%.5lf", sum);
	return 0;
}
为什么我这个运行了输入以后按回格就i什么都没有了