матрица на векторах

нужно найти сумму элементов по периметру матрицы. Код неправильно считает, уже не могу

    std::vector<std::vector<int>> matrix(rows,std::vector<int>(columns));

    for (int n = 0; n < rows; ++n) {
        for (int i = 0; i < columns; ++i) {
            matrix[n][i] = rand() % 10;
        }
    }

    std::cout << "matrix\n";

    for(auto i : matrix){
        for(auto j : i){
            std::cout << j << " ";
        }
        std::cout << "\n";
    }

    int s = 0;

    for (int i1 = 0; i1 < rows ; ++i1) {
        for (int i = 0; i < columns - 1; ++i) {
          if (i1 == rows - 1 || i1 == 0 ||i == columns - 1 || i == 0){
              s += matrix[i1][i];
          }
        }
    }

    std::cout << "\nсумма элементов матрицы по периметру = " << s;

    return 0;
}

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