C语阶程编写哪里错了?

#include <stdio.h>
int main( )
{
int i,n,fa=1;
scanf("%d",&n);
for(i=1;i<=1;i++)
fa=fa*i;
printf("%d\n",fa);
return 0;
}

看着代码没问题,出什么错误了?
for(i=1;i<=1;i++)这里应该是for(i=1;i<=n;i++)吧

阶乘

回答如下:没什么问题,注意空格,另外这个程序n有什么作用?
代码修改如下:

#include <stdio.h>
int main( )
{
    int i,n,fa=1;
    scanf("%d",&n);
    for(i=1;i<=1;i++)
    {
        fa=fa*i;
        printf("%d\n",fa);
    }
    return 0;
}

截图如下:

img

求n的阶乘?for的结束条件应该是i<=n