请问这个程序错在哪里?

为什么计算结果仍然是n的阶乘?
img

修改如下,供参考:

#include<stdio.h>
int main()
{
    int n, i, j, result, sum = 0;
    scanf("%d", &j);
    for (n = j; n > 0; n--)
    {
        result = 1;
        for (i = n; i > 0; i--)
        {
            result = result * i;
        }
        sum = sum + result;
    }
    printf("%d\n", sum);
    return 0;
}

你内外层都用的j,第一次进入内层,内层跑完之后j就变成0了,就不会继续第二次外层循环了,所以最后输出的就是n!
内层循环换个变量指代
有帮助望采纳