用c语言编写函数cal(),传入正整数n,返回s =1!+2!+...+n!的结果
时间: 2023-12-07 09:39:00 浏览: 35
当然可以。以下是一个用C语言编写的函数`cal()`,它接受一个正整数n作为输入,并返回1! + 2! + ... + n!的结果:
```c
#include <stdio.h>
int cal(int n) {
int sum = 0;
int factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i; // 计算i的阶乘
sum += factorial; // 将结果加到总和中
}
return sum;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("结果为:%d\n", cal(n));
return 0;
}
```
这个函数使用了一个for循环来遍历从1到n的所有整数,并使用阶乘公式来计算每个整数的阶乘。然后将所有阶乘相加,得到最终的结果。在主函数中,我们首先提示用户输入一个正整数,然后调用`cal()`函数来计算结果,并打印出来。
相关问题
c语言求s=1!+2!+3!+...n!
以下是C语言求s=1!+2!+3!+...n!的代码:
```c
#include <stdio.h>
int main()
{
int n, i, j;
long long fact = 1, sum = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
fact = 1;
for (j = 1; j <= i; j++)
{
fact *= j;
}
sum += fact;
}
printf("1!+2!+3!+...+%d! = %lld\n", n, sum);
return 0;
}
```
运行结果:
```
请输入一个正整数:5
1!+2!+3!+...+5! = 153
```
用c语言求s=1!+2!+...+n!
以下是用C语言求s=1!+2!+...+n!的代码实现:
```c
#include <stdio.h>
int main(void) {
int n = 0;
int i = 0;
int m = 1;
int sum=0;
printf("请输入n的值:"); scanf("%d", &n);
for (i=1; i<=n; ++i) {
m = m * i;
sum = sum +m;
}
printf ("sum = %d\n", sum);
return 0;
}
```