c语言,请问求5以下的基数阶乘输出为什么是1

c语言的
应该是15呀
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

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

第8行,for (i = 5 , total = 1;i <= 1; i--) 这里循环的条件 i <= 1; 弄反了 应修改为:for (i = 5 , total = 1;i >= 1; i--)

因为你没循环一次都把total赋值为1,你的预期是希望单数都乘起来135=15,你可以把total写在外面,初始化的时候直接赋值为1你试试


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 
int main()
{
    int i, total=1;
    //scanf("%d\n", &i);
    for (i = 5 ;i <= 1; i--)
    {
        if (i % 2 == 0)
        {
            continue;
        }
        total = total * i;
    }
    printf("%d\n", total);
}