#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;
}
printf("1!+2!+3!+....+n!=%d\n",&num);
&num 应该 num
printf 不用取地址,scanf才需要把变量地址告诉函数,其中的道理如果学了汇编语言就很好理解。C语言来理解,就是scanf需要修改那个地址的值,所以要地址(指针),printf不修改值,用值传递就可以了。
另外,阶乘很容易溢出的,不考虑很复杂情况,最起码用long long类型整数
输出的时候加了&