c++里用for结构求出n的阶乘

#include
using namespace std;
int main()
{int n,i;
for(i=1;i<=n;i++}
i*=i;
cout<<i;
return 0;}

这么写哪里不对呢

循环体内i乘等于和循环结束i++是不是矛盾了

#include <bits/stdc++.h>
using namespace std;
int main()
{
    long long s=1;
    int n;
    cin>>n;
    n=n+0;
    for(int i=1;i<=n;i=i+1){
        s=s*i;
    }
    cout<<s;
    return 0;
}