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;
}
请问错在哪里? 展开
#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;
}
请问错在哪里? 展开
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;
}
展开全部
printf("1!+2!+3!+....+n!=%d\n",&num);
&num 应该 num
printf 不用取地址,scanf才需要把变量地址告诉函数,其中的道理如果学了汇编语言就很好理解。C语言来理解,就是scanf需要修改那个地址的值,所以要地址(指针),printf不修改值,用值传递就可以了。
另外,阶乘很容易溢出的,不考虑很复杂情况,最起码用long long类型整数
&num 应该 num
printf 不用取地址,scanf才需要把变量地址告诉函数,其中的道理如果学了汇编语言就很好理解。C语言来理解,就是scanf需要修改那个地址的值,所以要地址(指针),printf不修改值,用值传递就可以了。
另外,阶乘很容易溢出的,不考虑很复杂情况,最起码用long long类型整数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的时候加了&
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询