Все выглядит нормально, до этой строки:
for(int year = 1; year < accounts[x].term; year++)
Этот код выходит за рамки цикла for:
for(x = 0; x < BANKACC; x++) { ... }
Я считаю, что цикл на протяжении многих лет должен быть внутри цикла BANKACC. Например, к тому времени, когда код достигает этого, x выходит за пределы массива, на который он похож.
Но это не единственная проблема. Циклы, которые повторяются по годам и месяцам, всегда будут на 1 меньше, чем должны, поскольку они начинаются с 1 и продолжаются до (
Кроме того, способ вычисления среднего значения также кажется неправильным.