Проблема в рекурсии в функции на си

Писала программу для матриц M*N на си через структуру:

    typedef struct m {
    float** array;
    int row;
    int col;
    } Matrix;

Необходимо найти определитель матрицы через рекурсию. Для этого написала отдельную функцию для поиска минора:

void minor_matrix (Matrix A, Matrix minor){
    int i, j;
    int offRow = 0;
    int offCol = 0;
    for (i = 0; i < (A.col - 1); i++){
        offRow = 1;
    }

    offCol = 0;
    for (j = 0; j ,(A.col - 1); j++){
        if (j == A.col){
            offCol = 1;
        }
        minor.array[i][j] = A.array[i + offRow][j + offCol];
    }
}

И, собственно, функцию для поиска самого определителя:

float determinant(Matrix A){
    int i, j;
    int det = 0;
    int degree = 1;
    float** minor;

    if ((A.col == 1)& (A.row == 1)){
        return A.array[0][0];
    }
    else if ((A.col == 2) & (A.row == 2)){
        return A.array[0][0]*A.array[1][1] - A.array[0][1]*A.array[1][0];
    }
    else if (A.col == A.row > 2){
        minor = (float**)malloc(sizeof(float*)*(A.col - 1));
        for (i = 0; i < (A.col - 1); i++){
            minor[i] = (float*)malloc(sizeof(float)*(A.col - 1));
        }
    }

    for (j = 0; j < A.col; j++){
        minor_matrix (Matrix A, Matrix minor);
        det += (degree * A.array[0][j] * determinant (Matrix A));
        degree = -degree;
    }

    for (i = 0; i < (A.col - 1); i++){
        free(minor[i]);
    }
    free(minor);
}

Выдает ошибку expected primary-expression before 'A' , когда вызываю в последней функции minor_matrix. Не могу понять, как правильно её вызвать. Спасибо


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