C语言的一道题,谢谢!

如题所述

#include<stdio.h>
double factorial( int m)//double 可以换成其他的类型,但是注意值的范围
{
    int i = 1;
    double result = 1;
    for( i = 1; i <=m; i++){
        result = result * i;
    }
    return result;
}
int main()
{
    int n;
    printf("输入数字:\n");
    scanf("%d", &n);
    double my_result =  factorial( n);
    printf("结果是%lf", my_result);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-19

您好!很高兴能回答您的问题。

本来想用C++写,但一看标题要求用C,以下代码就是C的代码,在VC6.0下通过测试。

如果需要C++代码,请留言。

#include "stdio.h" 
void Result(int &n);    //声明函数
int main()             //主函数
{
int n;
scanf("%d",&n);        //输入n的值
Result(n);             //调用Result函数求n的阶乘(使用引用求值)
printf("%d\n",n);      //输出结果
return 0;
}

void Result(int &n)
{
int i,s=1;
for(i=1;i<=n;i++)     //使用for循环求n的阶乘
s=s*i;
n=s;                  //将结果传回给n
}
这是C语言写的代码,利用函数的调用求n!
希望我的回答能帮到您,谢谢!

第2个回答  2016-04-19
#include <stdio.h>
long fac(int n)
{
    if(n<2)
        return 1;
    else
        return n*fac(n-1);
}
int main(void)
{
    int n;
    printf("输入一个正整数:");
    scanf("%d",&n);
    printf("%d!=%ld\n",n,fac(n));
    return 0;
}

相似回答