大家帮忙看看
#include<stdio.h>main()
{
long n;
long i,j;
float sum;
while(scanf("%d",&n)!=EOF)
{
if(n==0)
break;
else
{
sum=0;
j=0;
for(i=1;i<=n;i++)
{
sum=sum+(i+1)*i/2;
}
while(sum>=10)
{
sum=sum/10;
j++;
}
printf("%.2fE%d\n",sum,j);
}
}
}
为什么在2e31次方不能表示出正确的答案?