C递归求N的阶乘

#include<stdio.h>
void main()
{
int n;
printf("Input n:");
scanf("%d",&n);
long f(int);
printf("%ld",long f(n));

}
long f(int n)
{
if(n==0) return 1;
else return n*f(n-1);
}
为什么会出现type 'long' unexpected

printf("%ld",long f(n));
改成printf("%ld",f(n));

把f(n)看成long型的数字就行了

因为系统只认识这种格式。。
如果你一定要写long 也可以改成
printf("%ld",(long)f(n));
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-17

递归求阶乘

相似回答