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

我编的程序如下:#include"stdio.h"intmul(intn);voidmain(){inti,n,num=0;printf("输入待连续阶乘并求和的整数个数... 我编的程序如下:
#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);
}
int mul(int n)
{
int i,t=1;
for(i=1;i<=n;i++)
t*=i;
return t;
}
请问错在哪里?
展开
 我来答
HypnoS_s
2014-05-21
知道答主
回答量:18
采纳率:0%
帮助的人:19.3万
展开全部
#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;
}
翁珂0H7
2014-05-21 · TA获得超过1009个赞
知道小有建树答主
回答量:342
采纳率:100%
帮助的人:273万
展开全部
printf("1!+2!+3!+....+n!=%d\n",&num);

&num 应该 num

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

另外,阶乘很容易溢出的,不考虑很复杂情况,最起码用long long类型整数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
正直气冲天0
2014-05-21 · 超过47用户采纳过TA的回答
知道答主
回答量:333
采纳率:0%
帮助的人:97.2万
展开全部
输出的时候加了&
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式