C语言,计算1到n的阶乘求和问题

Python024

C语言,计算1到n的阶乘求和问题,第1张

C语言,计算1到n的阶乘求和问题 在for(n>=1n--)里面对b进行初始化,否则你的就变成累成了。

for(n>=1n--)

{

b = 1/

for(a=1a<=na++)b=b*a

sum=sum+b;

}

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

私心想着好歹改改便可以给楼主交差,可一看程式,真真是不行滴~~,我只有给楼主多改了改,这次必定是极好的。至于如何防止溢位,尽量不要算那么大的数,应该就可以了吧,我碰到的溢位问题不多。程式如下,请笑纳~~~如果还有何疑问,请尽管问~~~

#include<stdio.h>

int main()

{

int i,j

int a[100],sum=0,n

scanf("%d",&n)

for(i=0i<ni++)

{

for(j=1j<=i+1j++)

{

if(j==1)

a[i]=1

else

a[i]*=j

}

}

for(i=0i<ni++)

sum+=a[i]

printf("%d\n",sum)

return 0

}

c语言计算N的阶乘优化

高精度处理的时候可以用位压来加快速度

你的程式是阵列每个元素存一位

实际上存4位是没有问题的

只要进位的时候判断是否>=10000

输出的时候加一些条件补齐零就行了

谢谢

c语言求1/n的阶乘和

#include <stdio.h>int main(){double r=1,f=1 int i,n scanf("%d",&n) for(i = 1i <= ni ++){f*=i r+=1/f }printf("%lf\n",r) return 0}

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

#include<stdio.h>double fac(int n){if(n==0)return 1.0return n*fac(n-1)}int main(){int i,ndouble s=0scanf("%d",&n)for(i=0i<n+1i++) s+=fac(i)printf("%.0lf\n",s) return 0}

【线上等】c语言程式:对n的阶乘求和,n=1到10

#include <stdio.h>

double fun(int n)

{

double result = 1.0

if (n == 0)

return 1.0

while (n >1)

result *= n--

return result

}

int main()

{

printf("\n10! =%lf\n\n", fun(10))

}

祝你愉快!

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

错误可能有三个,第一你的main前面没有宣告,缺少个int,第二个可能的错误就是没有按照题目的要求进行多股输入,你的程式码只是输入一次n就结束程式,第三个是最主要的错误,你的for(j=1j<=ij++)

里面每次回圈一次就把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=1i<=ni++)

{p=1

for(j=1j<=ij++)

{ p=p*j}

Sn=Sn+p

}

printf("%ld\n",Sn)

}

C语言计算阶乘问题

printf("%d!=%d\n",&n,&s)改为 printf("%d!=%d\n",n,s)去掉&符号,否则你输出的是n和s的地址

c语言计算阶乘问题

这里的s表示的是i的阶乘。sum表示的是i

回圈一次累加一次的阶乘的求和。

你分析的前两次没有错误,第三次s=6,sum=9,i=4;

后几次你计算的应该也错了。

c语言程式设计问题 问题1求1到n的阶乘 问题2:求1到n的偶数的和

int jiecheng(int n){

if(n==0 ||n==1){

return 1

}else{

return n*jiecheng(n-1)

}

}

int sum=0

for(int i=1i<ni++){

if(i%2==0){

sum+=i

}

}

错误比较多。

语法错误:return后少

;、

不解释、

1、主函数中传入s、可s并没有值、只是单单被定义了;

2、被调用函数因为1中的原因、导致s没有确切值;,

3、被调用函数中用的n无值、我想你可能是想用主函数中的n、可你的定义为局部定义、只能把while(n>1)中的n理解成被调用函数中的、因此无值;

4、被调用函数循环语句有问题、s的意思是把每个数的阶乘相加、举例:若输入为3、则y=1*3s=s+3明显不是你想要的结果、

以上是我的个人看法、若还是需要源代码可追问、建议还是自己理解、然后编程、可以帮你检查错误、有利于个人进步

你那个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=1d<=nd++)

{

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=1i<=ni++)

result *=i

return result

}