C语言:求1到n的阶乘,我尝试for循环里用自减,但是出错了。

#include<stdio.h>
int main()
{
int total=1,n;
scanf("%d",&n);
for(int i=n;i=1;i--)
{
total=i*total;
}
printf("%d的阶乘为%d",n,total);
return 0;
}

代码不对哦

主要问题是for(;i == 1;) 中间的循环判断条件不能用 == ,这里是是否继续循环的判断,当n = 3时, 3 == 1 这条件不可能满足,修改如下,供参考:

#include<stdio.h>
int main()
{
    long long int total = 1, n, i;  //int
    scanf("%lld", &n);
    for (i = n; i != 1; i--)  //for (int i = n; i = 1; i--)
    {
        total = i * total;
    }
    printf("%lld的阶乘为%lld", n, total);
    return 0;
}