首页 > 技术文章 > 5的阶乘以及任意输入一个数的阶乘

laurarararararara 2019-04-01 21:45 原文

2019-04-01        21:47:48

关于5的阶乘                                                  任意数的阶乘

int main(){                   

int t;                

int i;

i=1;

t=1;                                                                int n;

                                                                      scanf("%d",&n);

while(i<=5){                                                    while(i<=n)

t=t*i;

i++;

   }

printf(%d",t);

return 0;

}

 

 

后续

2019-04-02     20:57:57

第二天在算法书上看到的关于函数调用的阶乘问题的算法

 

int fac(int n){

int p=1;

int t; 

for(t=1;t<=n;t++)         //t仅作为临时变量,若为5的阶乘   t=1;p=1;   t=2; p=1*2=2;    t=3;p=2*3=6;

p=p*t;

return (p);                      //一定要有返回值类型,返回p的值

}

main(){

int p;                            //开始写主函数时并未声明n,p;  n,p只出现在分函数中,属于局部变量,不是全局变量

int n;

printf("请输入n: ");       //开始错误写法,printf("%d" );  结果出来一直有1,有了下面的输入语句,不用太输入开始的输出,逻辑混乱 !!

scanf("%d",&n);

p=fac(n);                     //调用函数的时候,返回值为p,所以调用一定要添加p=

printf("%d!=%d\n",n,p);   //最后的输入值一定要添加n,p。因为最后的输出结果为第n个数的阶乘为p;

}

 

推荐阅读