求:1!+2!+3!+...+20!。#include<stdio.h>void main(){ long i=1,sum=0; int m; for(m=1;m<=20;m++) { i=i*m; sum=sum+i; } Printf("sum=%ld\n",sum); }这个程序应该挺简单的,这是我写的,但结果是错的。而正确的写法是第四行全部定义为long型,第十行输出格式为%e。我觉得我写的应该不错。程序中明明是长整型,为什么要用float定义,最后用%e与否怎么会影响了结果的正确?