1.自己的作业:

#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    int i = 1;
    int a = 0;
    int sum = 0;
        for (a = 1;a <= n;a++)
        {
            i = i * a;
            sum += i;
            

        }
        printf(" % d\n",sum);

    return 0;

}

2.错误代码举例:

#include <stdio.h>

int main()
{
    int i = 0;
    int ret = 1;
    int n = 0;
    int sum = 0;
    for (n = 1; n <= 3; n++)
    {

       ret=1;  //应在这里将ret归1。
        for (i = 1; i <= n; i++)
        {
            ret = ret * i;     //ret是在循环外创建的,在算3的阶乘时,这里的值就变成了2,所以算3的阶乘时值输出的是12。
        }

       
        sum = sum + ret;
    }
    printf(" % d\n", sum);
    return 0;
}

//此代码较为繁琐

3.参考代码

int main()
{
    
    int ret = 1;
    int n = 0;
    int sum = 0;
    for (n = 1; n <= 3; n++)
    {
        ret = ret * n;
        sum = sum + ret;
    }
    printf(" % d\n", sum);
    return 0;
}

4.学习问题:

①变量为啥命名ret?

更多推荐

C语言计算n的阶乘求和