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

做完后加分最好解析一下... 做完后加分最好解析一下 展开
 我来答
风若远去何人留
2016-01-04 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450134
专业C/C++软件开发

向TA提问 私信TA
展开全部

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);
}
地狱的冷枪otk
推荐于2018-03-20 · TA获得超过136个赞
知道小有建树答主
回答量:117
采纳率:40%
帮助的人:67.3万
展开全部
骚年 你这已经不是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提示有一个错误
追答
啥错误?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式