当前位置:首页 » 编程语言 » C语言1到n阶乘求和

C语言1到n阶乘求和

发布时间: 2022-12-20 07:28:49

c语言求1~n阶乘的和

你那个do
while是要做什么呢?输入n为负数则循环输入???还是????
#include
<stdio.h>
long
Fact(int
n);///////////////////////////////////////////////////////函数定义在调用之前,要预先声明
void
main
()
{
int
n,d;
long
b,c;
do
{
printf("请输入一个正整数:");
scanf("%d",&n);
c=0;/////////////////////////////////////////////////////c=0放这边
for
(d=1;d<=n;d++)
{
b=Fact(d);////////////////////////////////////////Fact(n);改成Fact(d);
c=c+b;
}
printf("和为%ld\n",c);
}while
(n<=0);
}
long
Fact(int
n)
{
int
i;
long
result=1;
for
(i=1;i<=n;i++)
result
*=i;
return
result;
}

⑵ c语言怎么求1到n的累加和

1、首先定义一个函数,这个函数里的内容求n的阶乘,返回值是n的阶乘,如下图所示。

⑶ C语言求1至n的阶乘和问题

下面是我给你改好的代码
#include<stdio.h>
int
main()
{
int
i,n;
double
p=1,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{

p*=i;

sum+=p;
}
printf("%lf\n",sum);
}

有几点你要注意一下,int是什么数据类型你应该知道,取值范围也知道吧,你输入33,你自己想象33的阶乘是多大的值,超出int范围肯定溢出啊,所以这里建议改为double型
还有你那个sum+=p,调到for循环里面,在外面的话只会执行一次,就是把p的最终值加上sum的初始值0,然后赋值给sum,这不就相当于直接把p的值赋给sum吗,所以我给你改成那样了,你自己看看吧

⑷ C语言 :题目 1加到n的阶乘之和

#include<stdio.h>
long fac(int n)//求n的阶乘;
{
if(n==1)return 1L;//当n为1,返回值1;

else return n*fac(n-1);//计算n的阶乘;
}

long sum(int n)//求阶乘相加之和;
{
int s,k;
for(s=0,k=0;k<=n,n>0;k++){
s=s+fac(n);
n=n-1;
}
return s;
}

void main()//主函数
{
int m;
scanf("%d",&m);
printf("%d\n",sum(m));
}

这悬赏的分数确实对不起这么多的要求。不过,还是帮你一把。
使用了两个函数调用,你可以围绕函数调用那章来写报告。

⑸ c语言求1到n的阶乘之和s

最基础的思路,是逐个求阶乘,并累加。不过由于阶乘是从1乘到n,所以每个数都单独求一次阶乘,会有很多重复运算,影响效率。
所以更快捷的方式是,在上一个数的阶乘基础上,直接乘上本身,得到当前数的阶乘。
以此为主导,代码如下:
#include <stdio.h>
int main()
{
int n, i, n1 = 1,s=0;
scanf("%d",&n);//输入n值。
for(i=1; i <= n; i ++)
{
n1*=i;//计算i的阶乘。
s+=n1;//累加。
}
printf("%d\n", s);//输出结果。
}

⑹ c语言:1到n的阶乘之和

不是,可以用一个递归实现
#include <stdio.h>
int fun(int n)
{
if(n==1)
return 1;
else
return n*fun(n-1);
}

int main()
{
int n,sum=0;;
printf("请输入n:\n");
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
sum+=fun(i);
}
printf("sum=%d\n",sum);
return 0;
}

⑺ c语言1加到n的阶乘之和

首先fac函数没有定义返回类型;

还有就是计算阶乘和计算的只是n的阶乘;

#include<stdio.h>

intfac(intn)//返回类型为int型
{
intsum=0;
intsum1=1;
for(intj=1;j<=n;j++)//从1开始计算阶乘,计算到n
{
for(inti=1;i<=j;i++)
{
sum1*=i;
}

sum+=sum1;
}

returnsum;
}

intmain(void)
{
intn1;
intresult;
printf("随意输入整数n,求1!+2!+...+n!的和: ");
scanf("%d",&n1);
result=fac(n1);
printf("%d",result);

return0;
}

⑻ c语言求1到n的阶乘之和s

错误比较多。
语法错误:return后少
;、
不解释、
1、主函数中传入s、可s并没有值、只是单单被定义了;
2、被调用函数因为1中的原因、导致s没有确切值;,
3、被调用函数中用的n无值、我想你可能是想用主函数中的n、可你的定义为局部定义、只能把while(n>1)中的n理解成被调用函数中的、因此无值;
4、被调用函数循环语句有问题、s的意思是把每个数的阶乘相加、举例:若输入为3、则y=1*3;s=s+3;明显不是你想要的结果、
以上是我的个人看法、若还是需要源代码可追问、建议还是自己理解、然后编程、可以帮你检查错误、有利于个人进步

⑼ 用c语言编写程序计算1~n的阶乘之和....

错误可能有三个,第一你的main前面没有声明,缺少个int,第二个可能的错误就是没有按照题目的要求进行多股输入,你的代码只是输入一次n就结束程序,第三个是最主要的错误,你的for(j=1;j<=i;j++)
里面每次循环一次就把p赋值为1,如果输入3的话,答案是不是10?1*1+1*1*2+1*2*3=10。如果要这样算的话程序如下:
#include<stdio.h>
int main()
{
int i,j,n;
long p;
long Sn=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{p=1;
for(j=1;j<=i;j++)
{ p=p*j; }
Sn=Sn+p;
}
printf("%ld\n",Sn);
}

热点内容
如何把迷你世界的服务器搞崩 发布:2025-05-14 22:37:15 浏览:94
如何让安卓卡死机 发布:2025-05-14 22:36:27 浏览:633
wemall微商城源码 发布:2025-05-14 22:15:20 浏览:804
隆地优选交易密码是什么 发布:2025-05-14 21:53:23 浏览:96
强酸强碱存储柜 发布:2025-05-14 21:45:16 浏览:565
车辆参数配置包括什么 发布:2025-05-14 21:31:03 浏览:164
怎么引入安卓项目 发布:2025-05-14 21:26:39 浏览:825
游戏辅编程 发布:2025-05-14 21:18:49 浏览:688
三菱plc一段二段密码什么意思 发布:2025-05-14 21:17:16 浏览:529
电脑开机密码忘记了怎么破解 发布:2025-05-14 21:09:40 浏览:57