C语言编程 输入一个正整n,生成一张阶乘表,输出1!~n!的值。

作者&投稿:牟寇 (若有异议请与网页底部的电邮联系)
C语言编程 输入一个正整n,生成一张阶乘表,输出1!~n!的值。~

/*******************************************************
*
C语言编程
输入一个正整n,生成一张阶乘表,输出1!~n!的值
*******************************************************/
#include

int
main(void)
{
int
i,n;
long
int
sum=1;
printf("请输入正整数n:");
scanf("%d",&n)
;
for(i=1;i<=n;i++)
{
sum*=i;
printf("%d!=%d
",i,sum);
}
return
0;
}

编程实现计算n!,也就是n*(n-1)*(n-2)*....*1,可以通过递归函数来实现,具体实现方法:
#include int Func(int n){if(n < 2)
return 1;
else
return n*Func(n-1);
}
void main(){int n =0,m=0;
printf("请输入一个正整数:")
scanf("%d",&n);
m=Func(n);
printf("%d!=%d
",n,m);}
在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)!,这样逐层递归,直到计算出N!。
程序输出结果如下:

扩展资料:
所谓n的阶乘就是从1到n的乘积,所以除了递归法来实现以外,其实我们也可以通过一个for循环,从1到n依次求积同样可以达到计算n!的目地。
具体实现代码如下:
#include
int main() {int n,i,s=1;scanf("%d",&n);
for(i=1;i<=n;i++)//for循环求累积
s=s*i;
printf("%d
",s);
return 0;
}
/*运行结果:(例如求5的阶乘)5120*/

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



/*******************************************************
* C语言编程 输入一个正整n,生成一张阶乘表,输出1!~n!的值
*******************************************************/

#include <stdio.h>

int main(void)
{
int i,n;
long int sum=1;
printf("请输入正整数n:");
scanf("%d",&n) ;

for(i=1;i<=n;i++)
{
sum*=i;
printf("%d!=%d\n",i,sum);
}

return 0;
}

#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, i, v;
scanf("%d", &n);
v = 1;
for (i = 1; i <= n; i++)
{
v *= i;
printf("%d! = %d\n", i, v);
}

system("pause"); //避免窗口一闪而退
return 0;
}

#include<stdio.h>
#include<math.h>
int main()
{
int i,n,sum,j;
scanf("%d",&n);
sum=1;
for(i=0;i<=n;i++)
{
if(i==0)
sum=1;
else
for(j=1;j<=i;j++)
{
sum=sum*j;
}
printf("%d!=%d\n",i,sum);
}
}


靖安县13771528253: 用C语言编写程序从键盘输入一个正整数数n,输出n! -
漳梅妥泰: 晚上好楼主,我已经编译通过请看图 谢谢采纳!#include <stdio.h> int Cacu(int n) { int i,sum=1; for(i=1;i<=n;i++) sum=sum*i; return sum; }void main() { int n,result; printf("please input a number for you to operate\n"); scanf("%d",&n); result=Cacu(n); printf("the result you want to get is:\n"); printf("%d\n",result); }图:

靖安县13771528253: 怎么用C语言编写程序“输入一个正整数n,计算1 - 2/3+3/5 - 4/7+5/9 - …" -
漳梅妥泰: #include<stdio.h> int main (void) { int i,n,m=1; double sum=0.0; printf("Enter a number:"); scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+(double)i/(2i-1); m=-m; } printf("sum=%lf\n",sum); return 0; } 试着运行吧,我没上机,大概就是这个样子的

靖安县13771528253: 用c语言编写程序 输入一个正整数n
漳梅妥泰: /*用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数*/#include"stdio.h"int count(int n){ int i,j,c=0; for(i=1;i

靖安县13771528253: C语言编程题:输入一个正整数n,输出1+1/2+2/3+3/4+....的前n项和 -
漳梅妥泰: #include<stdio.h> int main() {int n;double sum=0;//记录总和初始值为0printf("输入n的值:");scanf("%d",&n);for(int i=1;i<=n;i++)sum+=1.0/i;printf("前n项之和为:%lf\n",sum);return 0;}运行通过,可用.

靖安县13771528253: 输入一个正整数n输出一个0到n—1之间的随机数的c语言编程 -
漳梅妥泰: 1 2 3 4 5 6 7 8 9 10#include <stdlib.h>intmy_rand() {intres=0, n;printf("input n:");if(scanf(&n)==1) {res=rand()%n;}returnres; }

靖安县13771528253: C语言编写一个程序输出一个正方形 -
漳梅妥泰: 思路:输出正方形即输出正方形的外围就行,外围有个特点就是行列下标必有0或者是正方形的大小减一,输入一个n表示正方形大小,输出一个由*组成的正方形.参考代码:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25...

靖安县13771528253: C语言编程 输入一个正整n,生成一张阶乘表,输出1!~n!的值. -
漳梅妥泰: /******************************************************* * C语言编程 输入一个正整n,生成一张阶乘表,输出1!~n!的值 *******************************************************/#include int main(void) { int i,n; long int sum=1; printf("请输入正整数n:"); scanf("%d",&n) ; for(i=1;i<=n;i++) { sum*=i; printf("%d!=%d\n",i,sum); } return 0; }

靖安县13771528253: C语言 编写程序,从键盘输入一个正整数N,利用递归函数输出自然数1到N -
漳梅妥泰: #pragma hdrstop//---------------------------------------------------------------------------#include<stdio.h>#pragma argsused int main(int argc, char* argv[]) { void func(int n); int N; printf("input a number:"); scanf("%d",&N); func(N); getchar(); getchar(); return 0;...

靖安县13771528253: 用C语言编程,从键盘输入正整数n,输出1+(1+2)+(1+2+3)+···+(1+2+3+···+n)的值 -
漳梅妥泰: #include<stdio.h> int main() { int n,i,sum=0,temp=1; scanf("%d",&n); for(i=n;i>0;i--) { sum+= temp*i; temp++; } printf("%d",sum); return 0; }

靖安县13771528253: 用C编程序:输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和,保留两位小数.该序列从第3项起,每一项的分子是前一项分子与分母的和,分母是前... -
漳梅妥泰:[答案] #include int main() { double a=1,b=1; double s=0; int i,n; scanf("%d",&n); for(i=1;i

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网