C语言编程:写一个求n!的函数

作者&投稿:石要 (若有异议请与网页底部的电邮联系)
C语言编写程序题:求n!的递归函数,要求用MAIN()函数输入n值。~

int fun(int x)
{
if(x==1) return 1;
else return x*fun(x-1);
}
void main()
{
int n;
scanf("%d",&n);
printf("%d
",fun(n));
}
注意,14!已经超32位int范围了~~
而且,fun函数没有做数据检验,请不要用1~14以外的数作为参数。。。

在手机上使用易历知食软件里的微C程序设计来编程,代码示例如下图(用递归方式):

运行结果:

#include <stdio.h>
int factn(int n)//求n!
{
    int i,f=1;
    for(i=1;i<=n;i++)
        f=f*i;
    return f;
}
int main()
{
    int x,y,sum;
    printf("请输入x,y:");
    scanf("%d,%d",&x,&y);
    sum=factn(x)+factn(y);
    printf("%d!+%d!=%d
",x,y,sum);
    return 0;
}


#include <stdio.h>
int jiecheng(int n)
{
int i,m=1;
for (i=1;i<=n;i++)
{
m=i*m;
}
return m;
}
void main()
{
int a,b,c,sum;
printf("please input three numbers:\n");
scanf("%d%d%d",&a,&b,&c);
sum=jiecheng(a)+jiecheng(b)+jiecheng(c);
printf("\nthe sum is %d\n",sum);
}
这个是提示输入三个数,任意三个数的阶乘之和,木有分么....

int fun(int i)
{
int ret = 1;

for ( int j = 2; j <= i; j++)

{
ret *= j;

}

return ret;

}
这个是阶乘的函数 代码

#include<stdio.h>
int fun(int i){
if(i>1){
return i*fun(i-1);
}else{
return 1;
}
}
void main(){
int i,j;
scanf("%d%d",&i,&j);
printf("%d",fun(i)+fun(j));
}



c语言编程:给一个不多于五位的正整数,用if-else语句求出它是几位数
可以参考下面的代码:include <stdio.h> void main(){ int num; printf("请输入一个不大于5位数的正整数:");scanf("%d",&num);if(num>99999||num<1)printf("您的输入有误!\\n");else { if(num<10)printf("您输入的是1位数!\\n");else if(num<100)printf("您输入的是2位数!\\n...

c语言编程 求输入一个0-99的整数,判断其是否为同构数,要求写了程序还要...
include "stdio.h"int main(int argc,char *argv[]){int n;for(n=0;n<100;n++)if(n*n%(n<10 ? 10 : 100)==n)\/\/判断:n*n的值0~9除以10,10~99除以100,然后与n比较是否相等printf("%d ",n);printf("\\n");return 0;}运行结果:...

C语言编程问题 如何求一个数字的长度?
include <stdio.h>#include <string.h>void main(){int n;char str[50]={'\\0'};printf("请输入一个多位数: ");gets_s(str);n=strlen(str);printf("\\n%d\\n\\n",n);}运行示例:

用C语言编程:歌手大奖赛有10名评委打分,去掉一个最高分、去掉一个最低...
include<stdio.h> int s_min(int a[]);int s_max(int a[]);main(){ float a[10],min,max,s=0;\/\/定义一个数组用来存放10个评委的分数。定义的min,max,是用来超查找最高分和最低分的。int i;printf("请输入10个评委的分数:\\n");for(i=0;i<10;i++)scanf("%f",&a[i]);min...

c语言编程,先编写一个求n!的函数(n为正整数),然后通过调用该函数求5...
{ int i,m=1;for (i=1;i<=n;i++){ m=i*m;} return m;} void main(){ int a,b,c,sum;printf("please input three numbers:\\n");scanf("%d%d%d",&a,&b,&c);sum=jiecheng(a)+jiecheng(b)+jiecheng(c);printf("\\nthe sum is %d\\n",sum);} 这个是提示输入三个数,...

C语言编程 已知xyz + yzz = 532,其中x、y、z都是数字(0~9),编写一个...
include<stdio.h> Void main(void) { int x,y,z;for(x=1;x<6;x++)for(y=0;y<4:y++)for(z=0;z<4;z++)if((x*100+y*10+z)+(y*100+z*10+z)==532) printf(“x=%d,y=%d,z=%d\\n”,x,y,z); }

C语言编程求一个4x4数组左下三角 包括主对角线元素的和
printf("请输入一个3X4的数组元素:");for(i=0;i<3;i++)for(j=0;j<4;j++){ scanf("%lf",&a[i][j]);sum+=a[i][j];} sum=sum\/12;for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[i][j]>=sum)count++;printf("该数组中元素值大于等于元素平均值的个数为%d\\n",count)...

c语言编程:一个班有N个同学,通过键盘输入成绩,并进行一下处理:1求平均...
printf("1 平均分\\n");printf("2 增加\\n");printf("3 不及格补60\\n");printf("4 求最值\\n");printf("5 排序\\n");printf("6 退出\\n");} int main(){double a[200];int n,i,c,m;printf("输入学生个数N\\n");scanf("%d",&n);printf("输入成绩:\\n");for(i=0;i<n;...

c语言编程 编写一个函数,求出一个给定数字的所有因子。如72=2*2*2*...
include<stdio.h>int main(void){ int n, i; scanf("%d", &n); printf("%d = ", n); for(i = 2; n > 1; i++) { while(n % i == 0) { n \/= i; if(n == 1) printf("%d\\n", i); else printf("%d * ", i); } } ...

c语言编程,假设x是一个整数,写一个程序:从键盘上输入它的值,计算y=2x...
include "stdio.h"int main(){ int x,y; scanf("%d",&x); y=2*x+5; printf("%d",y);}

省直辖县级行政单位19339949365: 用C语言编程:编写一个函数,求n! -
翠尹易齐: #include <stdio.h> main() { int i,n,s=1; scanf("%d",&n); for(i=1;i<=n;i++) {s*=i; } printf("%d!=%d\n",n,s); }

省直辖县级行政单位19339949365: C语言编程:写一个求n!的函数 -
翠尹易齐: #include <stdio.h> int jiecheng(int n) { int i,m=1; for (i=1;i<=n;i++){m=i*m;} return m; } void main() { int a,b,c,sum; printf("please input three numbers:\n"); scanf("%d%d%d",&a,&b,&c); sum=jiecheng(a)+jiecheng(b)+jiecheng(c); printf("\nthe sum is %d\n",sum); } 这个是提示输入三个数,任意三个数的阶乘之和,木有分么....

省直辖县级行政单位19339949365: C语言编程题:求n! 用函数求n!,输入(n的值)和输出(结果)由主函数控制.求大神解答 -
翠尹易齐: #include int fact(int n) { int i,f=1; for(i=2;i<=n;i++) f *= i; return f; } void main() { int n; printf("输入n的值"); scanf("%d",&n); printf("%d!=%d\n",n,fact(n)); }

省直辖县级行政单位19339949365: 用C语言编写程序,任意输入一个正数n,求n!的值. -
翠尹易齐: #include "stdio.h" long JieCheng(int a) //定义阶乘函数 {int i;long s=1;for(i=a;i>1;i--)s*=i;return s; } void main() {int n;printf("请输入n:\n");scanf("%d",&n);printf("n!=%ld\n",JieCheng(n)); }

省直辖县级行政单位19339949365: C语言程序题: 1、编写一个求n!的函数fact(n),要求fact函数分别用递归和非递归两种方法实现 -
翠尹易齐: int fac(int n) //非递归 {int f=1;for(;n;)f*=n--;return f; }int fac1(int n) //递归 {if(n==0)return 1;return n*fac1(n-1); }

省直辖县级行政单位19339949365: 1.编写程序,C语言1.编写程序,计算下面公式并输出结果.要求:(1)编写一个函数计算n!(2)编写主函数,由键盘输入n和m,调用(1)中的函数完成计算... -
翠尹易齐:[答案] 第一 #include main() { int n,m,i,j; long int sumn,summ; scanf("%d%d",&n,&m); if(m>15 || n>15) printf("wrong!\n"); else { sumn=1; summ=1; for(i=1;i sumn=sumn*i; for(j=1;j summ=summ*j; printf("sumn=%ld\nsumm=%ld\n",sumn,summ); } } 第二...

省直辖县级行政单位19339949365: c语言,编写一个函数求n!.主函数求6!+7!+8!. -
翠尹易齐: #include<stdio.h> int fac(int n){ //求阶乘和,如果去掉all 返回sum便是求阶乘int i,sum=1,all=0; int i,sum=1,all=0; for(i=1;i<n+1;i++){ sum=sum*i; all=all+sum; } return all; } main() { printf("6!+7!+8!=&d",fac(8)-fac(5)); }

省直辖县级行政单位19339949365: 求n的阶乘函数(用C语言编程) -
翠尹易齐: main() {int n,sum=1; for(n=1;n<=你想要求的数(中间这项没有的话是死循环);n++) sum=sum*n; printf("n!=%d",sum); }

省直辖县级行政单位19339949365: 大一C语言编程题,请用非递归法实现计算n!的函数. -
翠尹易齐: #include "stdio.h" int main() { int sum = 1; int n; scanf("%d",&n); for (int i = n; i > 0; i--) { sum *= i; } printf("%d\t%d\n",n,sum ); return 0; }

省直辖县级行政单位19339949365: c语言的题目,编写求n!值的程序,用TC.. -
翠尹易齐: int fun1(int n){int i,s=1;for(i=1;i<=n;i++)s*=i;return s;}void main(){int n;scanf("%d",&n);printf("%d",fun1(n));}==================我在写这段程序的时候也清楚如果测试数据稍微大些会产生OVERFLOW,但我还是这么写了因为这么简单的题目测试用例一般不会很大如果稍微严密一点,可以把fun1的函数类型和s改成long类型,主函数里的显示方式也改成%ld另外,反对用递归!程序在执行时太低效,仅仅是代码上的简单.

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