C语言定义一个求阶乘函数时,怎么返回结果

我想要定义一个求阶乘函数,但是不知道怎么返回这个结果。代码能运行,但结果不对

#include <stdio.h>
int main()
{
    int fac(int x);
    int n=3,result;
    result = fac(n);
    
    printf("%d",result);
}
int fac(int x)
{
    int i,ret=1;
    int y; 
    for(i = 1;i <= x;i++)
    {
        ret = i*ret;
    }
    
    return x;
}

return ret;