c语言按下面要求编写程序:定义函数fact(k),其功能是计算 1!+2!+3!+…+k!的值并返回,函数返回值的类型是double;
时间: 2023-11-27 17:03:39 浏览: 166
C语言程序设计-编写main程序调用函数fact求解从m个元素选n个元素的组合数的个数;组合数=m!(n!.(m-n)!);
5星 · 资源好评率100%
以下是C语言按要求编写程序的代码和解释:
```c
#include <stdio.h>
double fact(int k); // 声明函数fact
int main() {
int k;
printf("请输入一个正整数k:");
scanf("%d", &k); // 接收用户输入的正整数k
double sum = 0;
for (int i = 1; i <= k; i++) {
sum += fact(i); // 调用函数fact计算1!+2!+3!+...+k!的值并累加到sum中
}
printf("1!+2!+3!+...+%d!的值为:%lf\n", k, sum); // 输出结果
return 0;
}
double fact(int k) { // 定义函数fact
double res = 1;
for (int i = 1; i <= k; i++) {
res *= i; // 计算k的阶乘
}
return res; // 返回k的阶乘
}
```
解释:
1. 首先在程序中声明函数fact,该函数的功能是计算k的阶乘并返回,返回值类型为double。
2. 在主函数中,首先接收用户输入的正整数k,然后定义一个变量sum用来存储1!+2!+3!+...+k!的值,初始值为0。
3. 在for循环中,从1到k遍历每个数i,每次调用函数fact计算i的阶乘并累加到sum中。
4. 最后输出1!+2!+3!+...+k!的值。
阅读全文