用C语言求5的阶乘,即5*4*3*2*1的值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言求5的阶乘,即5*4*3*2*1的值?相关的知识,希望对你有一定的参考价值。

用Win-TC编写

fac(int n)//递归调用函数

    int t;
    if(n==1||n==0)
    return 1;
    else
    
        t=n*fac(n-1);//t=n*(n-1)*(n-2)*...*1
        return t;
     
 
  
 main()
 
     int n,y;
     printf("Enter n:");
     scanf("%d",&n); //这边输入你要求的数   
     if(n<0)//保证n不为负数
         printf("Enter data Error! try");
      else
          
            y=fac(n);
            printf("\\n%d!=%d \\n",n,y); 输出该数的阶乘
           
    

希望对你有所帮助!

追问

语句错误,用win-tc运行有错

追答

嗯?? 提示什么错误呢?

参考技术A

可以使用递归,也可以使用循环实现。

#include <stdio.h>

int FactorialLoop(int num)

int ret_value;

if(num == 0)

ret_value =  1;


while(num > 0)

/*
应该加上对ret_value最大值的判断 
*/ 
ret_value = ret_value * num;
num--;


return ret_value;


int main()

int iNum;
/*
iNum可以从控制台获取 
*/
iNum = 5;

printf("%d",FactorialLoop(iNum));

上面是循环实现的。

追问

main( )
int S=1,i;
for(i=1;i<=5;i++)
S=S※
printf(“%d”,S);
getch()

追答

不知道你要说什么?

参考技术B #include <stdio.h>
void main()

int n=5;
int sum=1;
for(i=1;i<=5;i++)
sum*=i;
printf("%d",sum);
追问

语句错误,用win-tc运行有错

本回答被提问者采纳
参考技术C 用for循环啊

C语言求n个数的阶乘和,使用for语句循环,一定要用套嵌for语句吗?不用套嵌的单层for可以吗,

C语言求n个数的阶乘和,使用for语句循环,一定要用套嵌for语句吗?不用套嵌的单层for可以吗,C语言for语句

当然可以用单层循环!看——

#include "stdio.h"
int main(int argc,char *argv[])
int i,t,k,n;
printf("Please enter n(int 0<n<13)...\\n");
if(scanf("%d",&n)!=1 || n<1 || n>12)
printf("Input error, exit...\\n");
return 0;

for(k=0,t=i=1;i<=n;t*=i++,k+=t);
printf("The result is %d\\n",k);
return 0;

运行样例:

参考技术A 你把计算阶乘的算法提取到一个函数呗。 参考技术B int sum = 0;
int nj = 1;
for (int i = 1; i < n; ++i)

nj *= i;

sum += nj;

参考技术C 可以,开个数组累乘 参考技术D n个不连续的数吗? 可能需要用到数组哦

以上是关于用C语言求5的阶乘,即5*4*3*2*1的值?的主要内容,如果未能解决你的问题,请参考以下文章

C语言中阶乘用啥符号表示啊?

用c语言编程,求从1的阶乘一直加到20的阶乘。

用C语言 从一的阶乘加到二十的阶乘

C语言用while语句求1到5阶乘的和

求!1+!2+!3+!4+!5 注:!5=1*2*3*4*5; 求用C语言编出来 我学到循环结构 求解 最好写些注释让我容易懂

c语言 1到20的阶乘之和