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);
}
}
漳梅妥泰: 晚上好楼主,我已经编译通过请看图 谢谢采纳!#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