编程从1的阶乘加到20的阶乘,我这样做的结果是1048576,我知道不对,我想知道我这个错哪了

#include<stdio.h>
void main()
{int i,j,k=1,m=1,s=0;
for(i=1;i<=20;i++,k++)
{while(k!=1)
{m=m*k;
k=k-1;}
s=s+m;}
printf("s=%d",s+1);
}

for(i=1;i<=20;i++)
{
    k = i;
    m = 1;
    while(k!=1)
    {
        m=m*k;
        k=k-1;
    }
    s=s+m;
}

追问

可是我写的问题在哪里呢?

追答

其实你那个while循环是多余的,可以直接这样写:

for(i=1;i<=20;i++)
{
    m *= i;
    s += m;
}

温馨提示:答案为网友推荐,仅供参考