C语言编程求若干个连续整数的阶乘之和:1!+2!+3!+....+n!,要求求每个数的阶乘用函数来实现

2024-11-15 18:49:25
推荐回答(3个)
回答(1):

#include"stdio.h"
int mul(int n);
void main()
{
int i, n, num = 0;
printf("输入待连续阶乘并求和的整数个数为:");
scanf("%d", &n);
for (i = 1; i <= n; i++)
num += mul(i);
printf("1!+2!+3!+....+n!=%d\n", num);//这里printf()函数不需要&
}
int mul(int n)
{
int i, t = 1;
for (i = 1; i <= n; i++)
t *= i;
return t;
}

回答(2):

printf("1!+2!+3!+....+n!=%d\n",&num);

&num 应该 num

printf 不用取地址,scanf才需要把变量地址告诉函数,其中的道理如果学了汇编语言就很好理解。C语言来理解,就是scanf需要修改那个地址的值,所以要地址(指针),printf不修改值,用值传递就可以了。

另外,阶乘很容易溢出的,不考虑很复杂情况,最起码用long long类型整数

回答(3):

输出的时候加了&