如下代码,在scanf()后添加b[0] = a[0];并对第二个for循环做出修改后输出可以正常运行。
但是如果在第二次循环给b[-1]赋值,然后进行循环,会导致a少一个值,最终输出结果a[7]为0,这是为什么呢?
#include <stdio.h>
#define SIZE 8
int main (void)
{
int i;
double a[SIZE], b[SIZE];
printf("please input 8 number: ");
for ( i=0; i< SIZE; i++)
scanf("%lf", &a[i]);
for ( i=0,b[-1] = 0; i< SIZE; i++)
b[i]= b[i-1] +a[i];
for ( i=0; i< SIZE; i++)
printf("%10lf %10lf\n", a[i], b[i]);
return 0;
}
代码运行情况如图: