这个二维数组每行的和为啥不对呀

img


想问一下这个和为什么不是每一行的和,第二行的和加了前一行的和,第三行的和也是加了前两行的和,
怎么样能只求每一行的和

修改如下,修改内容看注释:

#include<stdio.h>
#include<math.h>
int main()
{
    int i, j; 
    float sum = 0, ave[3] = {0};//a[i]改成a[3],并声明为float
    int a[3][4] = { {12,30,20,10},{20,12,18,8},{56,4,13,6} };
    for (i = 0; i < 3; i++)
    {
        sum = 0;  //添加sum=0,不然的话第二行开始的sum是前几行的总和
        for (j = 0; j < 4; j++)
            sum += a[i][j];
        ave[i] = sum / 4;
        printf("sum=%2.f,ave [%d]=%.2f\n", sum, i + 1, sum / 4);
    }
}

sum循环没初始化