这样使用函数递归调用方法实现对吗

#include <stdlib.h>

int jc(int n)
{
int r;
if(n==1) r=1;
else
r=n*jc(n-1)
}
return r;

int main()
{
int n=0;
scanf("%d",&n);
if(n<0||n>10)
printf("the input is out of range");
else
{
int r=jc(n)
printf("the factorial of %d is %d",n,r);
}
}
return(0);
}

肯定是不规范的,最基本的固定语法都打破了。

没什么错误,供参考:

#include<stdio.h>
#include <stdlib.h>
int jc(int n)
{
    int r;
    if (n == 1) 
        r = 1;
    else
        r = n * jc(n - 1);
    return r;
}


int main()
{
    int n = 0;
    scanf("%d", &n);
    if (n < 0 || n>10)
        printf("the input is out of range");
    else
    {
        int r = jc(n);
        printf("the factorial of %d is %d", n, r);
    }
    return(0);
}