Передача двумерного массива в функцию - C (СИ) (74132)
Формулировка задачи:
void FILLING(FILE *file,int n,int m,float** array){ int i; int j; for (i = 0; i < n; ++i)//проход по столбцам for (j = 0; j < m; ++j)//проход по строкам fscanf(file, "%f", array[i][j]); //заполнили массив из файла }
FILE *file; char *fname = "system.txt"; file = fopen(fname, "r"); //открыли файл на чтение if (file == NULL)//проверили на месте ли он printf("File exist!"); //если нет, то предупредили int n = 0, m = 0, i = 0, j = 0, k; //заводим переменные SIZE(file,&n);//вызываем функцию для получения размерности n = n + 1;//количество строк m = n + 1; //столбцов столько же, сколько и строк +1 float array[n][m]; //создали массив NxN+1 float decision[n]; //массив, где хранятся решения FILLING(file,n,m,array);
Решение задачи: «Передача двумерного массива в функцию»
textual
Листинг программы
float **array; array = (float **) malloc(n*sizeof(float *)); for(i=0; i<n; i++) array[i] = (float *)malloc(m*sizeof(float)); FILLING(file,n,m,array);
Объяснение кода листинга программы
- Объявляется двумерный массив типа float **array.
- С помощью функции malloc() выделяется память под n строк массива, каждая строка имеет тип float *.
- Для каждой строки массива вызывается функция malloc(), которая выделяет память под m элементов типа float.
- Выполняется действие FILLING(file,n,m,array).
- В конце необходимо освободить выделенную память с помощью функции free().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д