Cannot convert 'double** (*)[N]' to 'double**' for argument '1' to 'double min(double**, int, int)'

Задание: Функция поиска минимального элемента в матрице. Матрица вещественных чисел. Прототип функции: double func(double** matrix,int m,int n) Написал такой код

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

double min(double **mtx, int m, int n);

int main(){
    int i, j, M, N;
    
    printf("Enter size of rows: ");
    scanf("%d", &M);
    printf("Enter size of column: ");
    scanf("%d", &N);
    
    double ** matrix[M][N];
    double result;
    
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++){
            printf ("A[%d][%d]=", i, j);
            scanf ("%lf", & matrix[i][j]); 
            }
    
    printf("\n");
        
    printf("Matrix: \n");
        
    for (i = 0; i < M; i++){
        for(j = 0; j < N; j++){
            printf("%.2lf ", matrix[i][j]);
        }
    printf("\n");
    }
    
    result = min(matrix, M, N);
    
    printf("\nMinimal: %5.2lf", result);
    
    
return(0);}

double min(double **mtx, int m, int n){
    int i, j;
    int r = 0, c = 0;
    double minimal;
    
    for (i = 0; i < m; i++)
        for (j = 0; j < n; j++){
            if (mtx[r][c] > mtx[i][j]){
                r = i;
                c = j;
            }
        }
        minimal = mtx[r][c];
        return(minimal);
}

Однако вылезает ошибка:

Cannot convert 'double** (*)[N]' to 'double**' for argument '1' to 'double min(double**, int, int)'

в строчке ввода функции в тело программы:

result = min(matrix, M, N);

Подскажите, пожалуйста, в чём ошибка и как её можно исправить.


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