c语言的scanf使用问题,读取标准输入后回车没任何反应不会有输出值

c语言的scanf读取标准输入后回车没任何反应不会有输出值
运行结果是输出任何值后回车都不会有任何反应,只会换行
我想要达到的结果是scanf读取标准输入后求小于这个数的奇数阶乘
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
    int i, total;
    scanf("%d\n", &i);
    for (i, total = 1;i = 1; i--)
    {
        if (i % 2 == 0)
        {
            continue;
        }
        total = total * i;
    }
    printf("%d\n", total);
}

第7行: scanf("%d\n", &i); 把 '\n'删了,修改为: scanf("%d", &i);
第8行: for (i, total = 1;i = 1; i--) 这里的 i=1; 也是有问题的,修改为: for (i, total = 1;i != 1; i--)