Выражение должно иметь тип указателя на объект, но имеет тип "int"

Компилятор жалуется в 24 строке, на b[j][i], а именно на j. Не знаю в чем проблема. Суть кода в умножении матриц.

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    int a[10][10], b[10][10],c[10][10], n,su=0;
    ifstream f("i.txt");
    ofstream of("o.txt");
    f >> n;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            f >> a[i][j];
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            f >> b[i][j];
        }
    }
    for (int b = 0; b < n; b++) {
        for (int d = 0; d < n; d++) {
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    su += ((a[i][j]) + (b[j][i]));
                }
            }
            c[b][d] = su;
        }
    }
}

Ответы (1 шт):

Автор решения: MBo

Локальная переменная цикла for (int b = 0, компилятор видит её там, где нужн массив (b[j][i])

P.S. Код не особо похож на умножение матриц

→ Ссылка