C语言写一个求阶乘函数输出结果

做完后加分最好解析一下

1 设计阶乘函数。

按照数学定义,对于n的阶乘,如果n为0,则返回1.

否则返回1*2*3*...*n的值。用循环实现。

2 在主函数中输入要求阶乘的值。

3 调用函数计算阶乘。

4 输出结果。

代码:

int fac(int n)
{
    int r = 1;
    int i;
    for(i = 2; i <=n; i ++)
        r*=i;
    return r;
}
int main()
{
    int n,r;
    scanf("%d",&n);
    r = fac(n);
    printf("%d!=%d\n",n,r);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-20
骚年 你这已经不是C语言基本数据类型能解决的了,因为30的阶层太大了,c语言的基本类型里存不下了,要用到其他特殊的方法,下面我给你一个产生不大于10 的三阶乘相加函数。如果有其他问题再讨论。

#include<stdio.h>
int my_Cal(int i)
{
long temp = 1;
for(i;i>0;i--)
temp = temp * i;
return temp;
}
void myCal(int a,int b,int c)
{
printf("ADD = %ld\n",my_Cal(a)+my_Cal(b)+my_Cal(c));
}
int main()
{
int a = rand()%11;
int b = rand()%10;
int c = rand()%10;
myCal(a,b,c);
return 0;
}追问

VC提示有一个错误

追答

啥错误?

追问

没有提示,只有一个错误

追答

哈?我这边VC都可以运行...

追问

不管对错先采纳

本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

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