一个运行出来错误的答案

#include<stdio.h>
int main()
{
int i,n,a;
for(i=1,a=0;i<=20;i++)
{
for(n=1;n<=i;n++)
{n=n*n;
printf("%d\n",n);}
a=n+a;
}
printf("%d\n",a);
return 0;
}
问题是:6.求 1!十2!十3!-十4.…+20!)。

结果输出的是433

您好,您这道题的意思是 1的阶乘 + 2的阶乘 + ... + 20的阶乘 吗?
不得不说我真的没看懂您的代码写的是什么
不过我帮你改好了,只需要一个循环

#include<stdio.h>
int main()
{
    int i,n,a;
//    for(i=1,a=0;i<=20;i++)
//    {
//        for(n=1;n<=i;n++)
//        {
//            n=n*n;
//            printf("%d\n",n);
//        }
//        a=n+a;
//    }
    for(i=1,a=0,n=1;i<=20;i++)
    {
        n=n*i; 
        a=a+n;
    } 
    printf("%d\n",a);
    return 0;
}

我知道你哪儿错了,。。。。。
n = n × n . 你是咋想出来的。。。。。