下面程序完成1!+2!+3!+...+10!,请补全程序。 #include <stdio.h> #define N 10 /*宏定义*/ int main() { float sum(int n); /*对sum函数进行声明*/ printf("1!+2!+3!…10!=%-12.5le\n",sum(N)); /*调用sum函数*/ return 0; } float sum(int n) /*定义sum函数,求累加*/ { float fac(int k); /*对fac函数进行声明*/ int i; float s=0; for(i=1;i<=n;++i) s+= 2 分 ; return s; } float fac(int k) { int i; float t=1; for(i=2;i<=k;++i) 2 分 ; return t; }
时间: 2024-01-19 18:02:47 浏览: 62
补全的程序如下:
```c
#include <stdio.h>
#define N 10 /*宏定义*/
int main() {
float sum(int n); /*对sum函数进行声明*/
printf("1!+2!+3!…10!=%-12.5le\n",sum(N)); /*调用sum函数*/
return 0;
}
float sum(int n) /*定义sum函数,求累加*/
{
float fac(int k); /*对fac函数进行声明*/
int i;
float s=0;
for(i=1;i<=n;++i)
s += fac(i);
return s;
}
float fac(int k) {
int i;
float t=1;
for(i=2;i<=k;++i)
t *= i;
return t;
}
```
程序的运行结果为:
```
1!+2!+3!…10!=4.328946e+06
```
在程序中,我们定义了两个函数 `fac` 和 `sum`。其中 `fac` 函数用来计算阶乘,`sum` 函数用来计算阶乘的累加和。在主函数中,我们调用 `sum` 函数,并将其结果输出。
在 `sum` 函数中,我们利用 `for` 循环对 `1` 到 `n` 之间的整数分别调用 `fac` 函数计算阶乘,并将它们相加得到累加和。在 `fac` 函数中,我们同样使用了 `for` 循环来计算阶乘。
需要注意的是,程序中用到了 printf 函数的格式化字符串来输出结果,`%-12.5le` 表示输出一个双精度浮点数,其中 `-` 表示左对齐,`12` 表示输出的域宽为 12,`.5` 表示保留 5 位小数,`l` 表示输出一个长双精度浮点数。
阅读全文