神仙们这个哪里错了,求2!+4!+……+12!


#include <stdio.h>
int main()
{
    int i,j;
    int sum=1;
    int b=0;
    for(i=2;i<=12;i=i+2)
        {
            for(j=1;j<=i;j++)
            sum=sum*j;
        }
    b=b+sum;
    printf("%d",b);
    return 0;
}

在上面的代码中,第一个错误出现在第10行,具体来说是没有把循环变量j的值恢复到1。因此,第一次循环的时候,sum的值将会等于1乘2乘3乘4乘5乘6乘7乘8乘9乘10乘11乘12,而不是正确的1乘2乘3乘4。

另一个错误出现在第15行,具体来说是把b的值直接加上了sum的值,而没有把它们赋给一个新的变量。因此,b的值将会变成0加上sum的值,而不是正确的0加上1乘2乘3乘4的值。

为了解决这个问题,可以按照下面的方式修改代码:

#include <stdio.h>
int main()
{
    int i,j;
    int sum=1;
    int b=0;
    for(i=2;i<=12;i=i+2)
        {
            for(j=1;j<=i;j++)
            sum=sum*j;
            b=b+sum;
            sum=1; //把sum的值恢复到1
        }
    printf("%d",b);
    return 0;
}

希望以上修改能够解决您的问题。如果您还有疑问,欢迎提出。