读书人

感觉没有错如何运行结果是一个很大的

发布时间: 2013-12-13 13:57:17 作者: rapoo

感觉没有错,怎么运行结果是一个很大的负整数?请教下大家

#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];
这三行是多余的
[解决办法]

a[i-3] = a[i-2];
a[i-2] = a[i-1];
a[i-1] = a[i];


这是在干什么?

读书人网 >C语言

热点推荐