感觉没有错,怎么运行结果是一个很大的负整数?请教下大家
#include <stdio.h>
//已知 f(n)=f(n-1)+2f(n-2)-5f(n-3), f(0)=1,f(1)=2,f(2)=3, 求 f(0)+f(1)+……+f(20)
int main(void)
{
long a[21]={1,2,3},sum,i;
sum = a[0]+a[1]+a[2];
for (i = 3 ; i <= 20 ; i++)
{
a[i] = a[i-1] + 2 * a[i-2] - 5 * a[i-3];
sum += a[i];
a[i-3] = a[i-2];
a[i-2] = a[i-1];
a[i-1] = a[i];
}
printf("%ld \n", sum);
return 0;
}
a[i-3] = a[i-2];
a[i-2] = a[i-1];
a[i-1] = a[i];