Почему выкидывает ошибку «нарушение прав доступа» и деление на ноль, но ноля нет?
Берёте дебаггер и по шагам выполняете код.
Вместо вас тут никто отладкой заниматься не будет
В строке 
double coeff = -B[j][i] / B[i][i];
что будет, если B[i][i] равно нулю?