(c语言)定义函数"int f(int n)",求n!,怎么做?

???

#include<stdio.h>

int f(int n)

{

int p;

if(n>1)

p=n*f(n-1);

else

p=1L;

return(p);

}

int main()

{

int m;

scanf("%d",&m);

printf("%d!=%d",m,f(m));

getchar();

getchar();

}

追问

在不在

我大一小学弟🌚🌚

追答

n!(阶乘)意思是从1开始一直乘到n的结果
实现的方法有两种,第一种函数的递归,第二种循环语句。
函数递归入上面的源文件中的 p=n*f(n-1); 语句,不断的通过该语句调用函数 int f(int n) 并以n-1的结果为新的实参,实现函数的递归调用,当if(n>1)为假时执行
else
p=1L;
return(p);
并逐层返回
循环语句下面那位的追答就是,但是他的代码不可以单独运行,没有main函数

追问

你是不是学计算机的??

我有好多问题想请教

加加我

交流一下

微信

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-10
int f(int n){
if(n==0)
return 1;
return n*f(n-1);
}追问

在不在

我大一弟弟🌚🌚

追答

上面是递归函数,不易看懂。给你弄个非递归的——
int f(int n){
int s=1;
while(n)
s=s*n--;
return s;
}

追问

咱们加一下微信吧

我有好多问题想请教

好吗??

本回答被网友采纳
相似回答