【问题描述】编写函数f,功能是用递归的方法求n!,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f求出n!并在主函数中输出。

#include
long long int f(int n)
{
int i;
long long int m=1;
for(i=1;i<=n;i++)
m=m*i;
return m;
}
int main(int argc, char *argv[])
{
int a;
scanf("%d",&a);
printf("%d!=%lld",a,f(a));
return 0;
}
图片说明
求大佬帮助寻找错误

你的程序不满足题意,没有用递归,递归写法如下:

int f(int n)
{
if (n == 1) return 1;
return f(n - 1) * n;
}

你的代码没错,但题目要求返回的是int 不是 long long。

#include<stdio.h>

int f(int n)
{
    int i;
    int m=1;
    for(i=1;i<=n;i++)
        m=m*i;
    return m;
}
int main(int argc, char *argv[])
{
    int a;
    scanf("%d",&a);
    printf("%d!=%d",a,f(a));
    return 0;
}