c语言求s=1!+2!+3!+…+n!(n由输入决定)。求大神能详细解读一下这个程序,尤其是for语句里面是什么意思
没人回答?我来捡分了:
============================
#include
int fun(int n)
{
if(n==0)
return 1;
else return n*fun(n-1);
}
void main()
{
int n,sum=0;
printf("input n:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
sum+=fun(i);
printf("sum=%d
",sum);
}
#include
main()
{
int i,n,s,sum;
sum=0;
s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
s*=i;
sum+=s ;
printf("%d
",sum);
getch();
}
编译通过且符合题意
第一二行代码:int i,j,n;
long int t=1,sum=0;//定义了三个整数型(短整型)的变量,定义两个长整整型变量并初始化。
第三行代码:printf("input n:",&n);//提示输入。
第四行代码:scanf("%d",&n);利用scanf()函数输入n。
第五行代码:for (i=1;i<=n;i++)//进入for循环,外部for循环的主要作用是进行阶乘的求和。
第六七八行代码:t=1;
for(j=1;j<=i;j++)
t=t*j;//引用t这个变量进行对i这个阶乘的计算,并将结果储存在t中。内部的for循环的主要作用是计算阶乘。
第九行代码:sun=sum+t;//计算阶乘的和。
第十行代代码:printf("n!=%ld",sum);//利用printf()函数对结果进行输出。
扩展资料:
循环的嵌套:
1,while循环包含while循环的内层循环。
2,do…while循环包含do…while循环的内层循环。
3,for循环包含for循环的内层循环。
4,while循环包含do…while循环的内层循环。
5,for循环包含while循环的内层循环。
6,do…while循环包含for循环的内层循环。
参考资料来源:百度百科—C语言
您好!很高兴为您解答。
解释如下:
#include<stdio.h>
void main()
{
int i,j,n;
long int t=1,sum=0;//必要的初始化,保证后面for循环的语句“sum=sum+t;”能正常执行。
printf("input n:",&n);
scanf("%d",&n);//输入式中n
for (i=1;i<=n;i++)
{
t=1;//作为计算阶乘的起始
for(j=1;j<=i;j++)//这个内层循环计算的是 i !(i由1递增至n)
t=t*j;
sum=sum+t;//每进行一次外层循环,加一个 i !由此实现整个式子的计算
}
printf("n!=%ld",sum);//输出计算结果
}
望采纳~如您还有不解,欢迎追问~
for里面是循环 i=1是第一次循环是i的值,i<=n是i的循环范围,i++是i的值每次加1
刚学C??要看懂 for里面的最好懂得方法是你代几个数一步一步试试 然后你应该会明白吧
分别用以下两种方法编写程序求 S=1!+2!+3!+……+n!,比较两种方法的优劣...
程序1:#include<stdio.h>int main() {int s=0,i,n,t=1; scanf("%d",&n); for(i=1;i<=n;i++) \/\/效率较高,时间复杂度为O(n) {t*=i; s+=t; } printf("%d\\n",s); } 程序2:#include<stdio.h> \/\/调用函数完成,效率较低,且时间复杂度为O(n^2)(累加O(...
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(ma...
用C语言编程计算下列表达式:s=1!+2!+3!+4!+……+10!。
s+=k;\/\/累加 k=1;\/\/初始化 } printf("%ld\\n",s);} 字符串 C语言的字符串其实就是以'\\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件。文件输入\/输出:在C语言中,...
s=1+2+3+4+5+6+...100c语言编程模块化
include <stdio.h>int sigma (int n, int k) { \/*求和函数*\/int i,sum=0;for (i=k; i<=n; i++)sum+=i;return sum;}int main(void) {int sum; sum=sigma (100, 1);printf("s=1+2+3+4+5+6+...100="); printf("%d\\n",sum); getch (); \/*屏幕暂留*\/r...
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!+……+20!的值
程序代码如下: main(){ float s=0,t=0; int n; for(n=1;n<=20;n++) { t=t*n; s=s+t; } printf("1!+2!+...20!=%e\\n",s);}
用c++编程 输入一个整数n,输出1!+2!+3!+……+n! 急急急急急!
先写出一个如下的函数:int fun(int n){ int s=1;for(int i=1;i<=n;i++)s*=i;return s;} 然后在主函数中调用反复调用它 int main(){ int n;while(cin>>n){ int sum=0;for(int i=1;i<=n;i++){ sum+=fun(i);} cout<<sum<<endl;} } ...
python中for语句来求 1+2+3+……+100=?
sum=0 for i in range(101):sum+=i print(sum)
用JAVA语言编程 求1!+2!+3!+4!+5!+6!+7!+8!+9!+10!。(要求:使用while...
1!:表示1的阶乘;2!表示2的阶乘,就是1*2 依次类推就行。1!+2!+3!+4!+5!+6!+7!+8!+9!+10!就是求和嘛,这个直接用循环求和就行了。
C语言求1+2!+3!+...+20!的和。使用while循环语句以及递推算法
include <stdio.h> void main(){ int i=1,j=1,k=1,sum=0;while(i<=20){ while(j<=i){ k*=j;j++;sum+=k;} i++;} printf("%d\\n",sum);}