c语言中阶乘fact函数 fact求阶乘

C语言,用函数求阶乘

首先你的p没有初始值1,且是int型,所以返回的并不是long型,scanf里面不能加\n

目前创新互联已为上1000家的企业提供了网站建设、域名、网页空间、网站托管、企业网站设计、丽江网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

#includestdio.h

long fact(int n)

{

int i; long p=1;

if(n0) //这里添加判断以免出现小于1的现象 

for(i=1;i=n;i++)

p=p*i;

else printf("程序出错!k必须大于r!"); 

return p;

}

int main()

{

int k,r;

printf("输入k,r:\n");

scanf("%d%d",k,r);

printf("r=%d,k=%d",k,r);

double s;

s=fact(k)/(fact(r)*fact(k-r));//若k-r1,会出错 

printf("\nC(%d,%d)=%lf\n",k,r,s);

}

求助!C语言!利用求阶乘函数Fact(),编程计算并输出从1到n之间所有数的阶乘值。

#include stdio.h

main()

{

int a,b,c,d=1;

scanf("%d",a);

printf("Please enter n:");

for(b=1;b=a;b++)

{

for(c=1;c=b;c++)

{

d=d*c;

}

printf("%d! = %ld\n",b,d);

d=1;

}

}

C语言中阶乘怎么输?

1、不是直接输入n!,需要一定的算法才可以实现。具体方法是,首先打开编辑器,准备好空白的C语言文件:

2、在编辑器中输入代码,这里所谓 n 的阶乘,就是从 1 开始乘以比前一个数大 1 的数,一直乘到 n。C语言中可利用循环解决,可以假设循环变量为 i,初值为 1,i 从 1 变化到 n;依次让 i 与 sum 相乘,并将乘积赋给 sum,最后输出sum的值就可以了:

3、在编辑器中运行程序,随意输入一个数,按下回车键,即可打印出阶乘的结果来:

c语言中调用fact函数求阶乘详细格式

#includestdio.hint fact(int n)。

{int ans=1,i;if(n=1) return 1;for(i=1;i=n; ++i)ans*=i;return ans;}

int main(){int n,ans;scanf("%d",n);ans=fact(n);printf("ans = %d\n",ans);return 0;}

扩展资料:

顺序结构:

顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序。

写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积。

其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。

参考资料来源:百度百科-c语言


分享名称:c语言中阶乘fact函数 fact求阶乘
标题来源:http://myzitong.com/article/doceesp.html