求教:用C语言求1到5的阶乘

求教:用C语言求1到5的阶乘,第1张

n是形式参数,它用来接受来自主函数的实参也就是当函数调用的时候fac(i)中的i来替换这里的n

当第一次调用的时候,i=1(实参)传给n(形参),n=1; f=fn就等于1=11;此时f=1;当第二次调用的时候,n=2,f=fn就是把fn等于12赋给f,此时f=2,依次类推

你能看懂吗

阶乘的结果,数值很大,要用double计算和存放。

打印整数部分就可以了。

# include <stdioh>

double jc(int n)

{

int i;

double x=10;

for (i=1;i<=n;i++) x = x (double) i;

return x;

}

void main()

{

int i,n;

double x;

printf("Please enter a number 1 to 10\n");

scanf("%d",&n);

x=jc(n);

printf("%0lf\n",x);

}

1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。

2、然后定义一个变量result,如下图所示。

3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。

4、接下来就可以调用输出,如下图所示。

5、最后点击运行,如下图所示,就可以运行测试。

n的阶乘就是从1到的累积,所以可以通过一个for循环,从1到n依次求积即可。

参考代码:

#include "stdioh"

int main() {

int n,i,s=1;

scanf("%d",&n);

for(i=1;i<=n;i++)//for循环求累积

s=si;

printf("%d\n",s);

return 0;

}

/

运行结果:(例如求5的阶乘)

5

120

/

扩展资料:

 

return用法:

return返回一个数值的意思就是把return<表达式>后面表达式的值返回给调用他的函数。举个例子:

int sum(int i,int j)

{

return i+j;

printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");

}

main()

{

int a=10,b=11,c;

c=sum(a,b);

printf("%d",c);

}

第一次调用时,f的初始值为1。f=11=1,返回1。

第二次调用时,f的初始值为1。f=12=2,返回2。

第三次调用时,f的初始值为2。f=23=6,返回6。

第四次调用时,f的初始值为6。f=64=24,返回24。

第五次调用时,f的初始值为24。f=245=120,返回120。

每一次调用时,调用函数中n的值是从

for(i=1;i<=5;++i)

printf("%d!=%d\n",i,fact(i));

里 i 的值复制过来的。

#include

<stdioh>

int

fun

(int

num)

{

if

(1==num)

{

return

1;

}

return

num

fun(num

-

1)

;

}

int

main()

{

int

result

=

fn

(5);

printf("5的阶乘的是:%d\n",result);

return

0;

}

fun并不是一个函数,只是你自定义函数的一个函数名而已

,本题中采用的是递归函数

代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#include"stdioh"

#include"stdlibh"

int main()

{

int n = 0;

printf("请输入一个数字: ");

scanf("%d",&n);

int i = 0;

int ret = 1;

int sum = 0;

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

{

ret = i;

sum += ret;

}

printf("%d\n",sum);

system("pause");

return 0;

}

扩展资料

阶乘计算功能关键算法

利用递归方法求5!

用递归方式求出阶乘的值。递归的方式为:

5!=4!5

4!=3!4

3!=2!3

2!=1!2

1!=1

即要求出5!,先求出4!;要求出4!,先求出3! … 以此类推。

注意:定义一个函数(或方法),用于求阶乘的值。

在主函数(或主方法)中调用该递归函数(或方法),求出5的阶乘,并输出结果。

package Third;

public class one {

    public static void main(String args[]){

        int n =5;            //输入n的值

        //n的阶乘的值为:factorial(n);

        Systemoutprintln("5的阶乘是:" + factorial(n));

    }

    public static int factorial(int n){         //阶乘求解函数

        if(n == 0){                             //判断传进来的n是否为0,若为零返回阶乘为1

           return 1;

        }

        return nfactorial(n-1);             //重新调用函数,继续判断n-1是否为零,

    }

}

   

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11672447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存