C语言求1!+2!+3!+...10!的和。

下面的程序错哪了?怎么改?
#include<stdio.h>
main(){
int i,j,m=1,sum=0;
for(i=1;i<=3;i++){
for(j=1;j<=i;j++){
m=m*j;
sum=sum+m;
}
}
printf("1!+2!+...+10!的和为sum=%d\n",sum);
}

你这个程序就不改了吧,完全错的,难道你只计算到3!

正确的程序如下:

#include<stdio.h>
void main()
{
long i,n=1,p=0;
for (i=1;i<=10;i++)
{
n*=i;
p+=n;
}
printf("1!+2!+...+10!=%ld\n", p);
}

注意看程序,下面的语句标识从1~10进行循环,{...}里面的语句执行10次,每次执行时候i的值分别为1,2,3...10:
for (i=1;i<=10;i++)
{
...
}

在每次循环中,n*=i计算后的n值为i!,也就分别是1!,2!,....,10!
然后下面一句p+=n,就是计算所有i!之和
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-20
你这个程序就不改了吧,完全错的,难道你只计算到3!
正确的程序如下:
#include<stdio.h>
void
main()
{
long
i,n=1,p=0;
for
(i=1;i<=10;i++)
{
n*=i;
p+=n;
}
printf("1!+2!+...+10!=%ld\n",
p);
}
注意看程序,下面的语句标识从1~10进行循环,{...}里面的语句执行10次,每次执行时候i的值分别为1,2,3...10:
for
(i=1;i<=10;i++)
{
...
}
在每次循环中,n*=i计算后的n值为i!,也就分别是1!,2!,....,10!
然后下面一句p+=n,就是计算所有i!之和
第2个回答  2009-05-08
# include<stdio.h>
main()
{ long int sum=0,j,i,m=1;
for(j=1;j<=10;j++)
{
m=1;
for(i=1;i<=j;i++)
m*=i;
sum+=m;
}
printf("1!+2!+...+10!的和为sum=%d\n",sum);
}
就是这样,首先要注意,数据的范围,所以用long int,其次,要注意用到m=1
第六行的,每一次m的初值必须是1,否则会继承上一次的值。还有什麽问题,就问,肯定帮你解答!
第3个回答  2019-12-03
你这个程序就不改了吧,完全错的,难道你只计算到3!
正确的程序如下:
#include<stdio.h>
void
main()
{
long
i,n=1,p=0;
for
(i=1;i<=10;i++)
{
n*=i;
p+=n;
}
printf("1!+2!+...+10!=%ld\n",
p);
}
注意看程序,下面的语句标识从1~10进行循环,{...}里面的语句执行10次,每次执行时候i的值分别为1,2,3...10:
for
(i=1;i<=10;i++)
{
...
}
在每次循环中,n*=i计算后的n值为i!,也就分别是1!,2!,....,10!
然后下面一句p+=n,就是计算所有i!之和
第4个回答  2009-05-09
#include "stdio.h"
void main()
{
int sum=0, i, a=1;
for(i=1; i<=10; i++)
{
a=a*i;
sum+=a;

}
printf("%d", sum);
}

C语言求1!+2!+3!+...10!的和。
for (i=1;i<=10;i++){ ...} 在每次循环中,n*=i计算后的n值为i!,也就分别是1!,2!,...,10!然后下面一句p+=n,就是计算所有i!之和

c语言:求1+2!+3!+...+10!的和
include<stdio.h>#include<stdlib.h>int JC(int n){ if(n==0 || n==1) return 1; else return n*JC(n-1);}int main(){ int i; int sum=0; for(i=1;i<=10;i++){ sum +=JC(i); printf("%d\\n",sum); } printf("1+2!+3!+...+10!=...

设计C语言计算1!+2!+3!+...+10!=?
C语言计算1到10的阶乘的和的代码如下:#include"stdio.h"#include"math.h"voidmain(){inti,j,n,sum=0;for(i=1;i<=10;i++){ n=1;for(j=1;j<=i;j++)n*=j;/* 将每一项阶乘相加求和。*/ sum+=n;} printf("%d\n",sum);} 本程序采用两层循环...

C语言。编写程序计算1+2+3+……+10,10个整数的和,并把结果打印...
10个整数和:include <stdio.h>int main(){ int i,sum=0,nums[10]; printf("输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&nums[i]),sum+=nums[i]; printf("这10个整数的和:%d",sum); return 0;} ...

用c语言编写程序:1!+2!+3!+...+10!=?
\/\/结果是4037913 include <stdio.h> main(){ int i,j;long temp=1,sum=0;\/\/数字太大,用long型 for(i=1;i<=10;i++){ for(j=1;j<=i;j++)\/\/用于计算机1!,2!,3!...{ temp=temp*j;} sum=sum+temp;temp=1;} printf("%d\\n",sum);} ...

C语言怎样用递归方法编写程序 求s=1!+2!+3!+...10!
首先是求阶乘:int factorial(int index){ int sum = 0;if (index == 1){ sum = 1;}else{ sum = index * factorial(index-1);} return sum;} 之后再求和:int add_recursion(int maxnum){ int sum = 0;if (maxnum == 1){ sum = factorial(maxnum);}else{ sum = factorial(...

用C语言编写求1+2+3……+10的和
改了下 include <stdio.h> main(){ int i,s;s=0;for(i=1;i<=10;i++) s=s+i;printf("%d",s);}

c语言求1!+2!+3!+。。。+10!
void main(){ int a=1,i,sum=0;for (i=1;i<11;i++){ a=a*i;sum=sum+a;} printf("1!+2!+3!+...+10!=%d\\n",sum);} 每次循环都是上一个数的阶乘乘以下一个数,把它们加起来就行了!你应该能看得懂,这个不复杂,这还是我学C的时候编的一只保留着,C语言只是个基础,后面...

求1+2!+3!+...+10!的和 在以表格格式显示1到10的乘法表
{=SUM(FACT({1,2,3,4,5,6,7,8,9,10}))} {={1,2,3,4,5,6,7,8,9,10}*{1;2;3;4;5;6;7;8;9;10}} 注:CSE 数组公式,结束时按Ctrl+Shift+Enter完成输入,前后{}自动加上即是成功 乘法表要先选好10*10的单元格后在输入数组公式,否则显示不完整 ...

利用求阶乘函数编程求和!1+!2+!3+...+10!
额,很简单,利用递归可以解决!include <stdio.h> int fact(int n){ if(n == 1)return 1;else return n*fact(n-1);} int main(){ int s = 0;for(int i = 1; i <= 10; i++){ s += fact(i);} printf("s = %d\\n",s);} ...

相似回答