宏or数组的传递数值不对

#include
#define SIZE 5

int main(void)
{
int i,j;
int sum=0;

int a[SIZE]={}; 
int b[SIZE]={1,2,3}; 

int c[2][3]={
{11,22,33},
{44,55,66},
};

for(i=0;ifor(i=0;iprintf("a[%d]=%d\n",i,a[i]);

for(i=0;iprintf("b[%d]=%d\n",i,b[i]);

for(i=0;iprintf("数组a的所有元素的和=%d\n",sum);

for(i=0;i<2;i++){
    for(j=0;j<3;j++){
        printf("c[%d][%d] = %d\n",i,j,c[i][j]);
    }
}

return 0;

}
编译后的英语和数学总成绩不对

a数组就三个有效元素,你18行对SIZE个元素求和,怎么可能对呢
另外,哪来的英语和数学总成绩???