Составить функцию нахождения минимального элемента матрицы - C (СИ)
Формулировка задачи:
Решение задачи: «Составить функцию нахождения минимального элемента матрицы»
- #include "stdlib.h"
- #include "conio.h"
- void vvod_matr(int m,int n,int *q)
- {
- int j,i;
- for ( i = 0; i < n; i++){
- for (j = 0; j < m ; j++)
- scanf("%d", (q+i*m+j));
- }
- for (i=0; i<n; i++)
- {
- printf("\n"); //vivod matr
- for (j=0; j<m; j++)
- printf("a[%d][%d]=%d\t", i+1, j+1, *(q+i*m+j));
- }
- }
- void max_matr(int m,int n,int *q)
- {
- int i,j,max;
- max=*(q+1*m+1);
- for(i=0;i<n;i++)
- {
- for(j=0;j<n;j++)
- if(max<*(q+i*m+j))
- max=*(q+i*m+j);
- }
- printf ("\n%d",max);
- }
- int main()
- {
- int *p;
- int m,n;
- printf("Razmer N=");
- scanf("%d", &n);
- printf("Razmer M=");
- scanf("%d", &m);
- p=(int*)malloc(n*m*sizeof(int));
- vvod_matr(m,n,p);
- max_matr(m,n,p);
- getch();
- return 0;
- }
Объяснение кода листинга программы
Код начинается с подключения необходимых библиотек: stdlib.h и conio.h. Затем определены две функции: vvod_matr и max_matr. Функция vvod_matr принимает три аргумента: m, n и q. Первый два аргумента используются для определения размера матрицы, а третий аргумент - это указатель на первый элемент матрицы. В этой функции происходит ввод данных в матрицу с помощью функции scanf. Затем данные выводятся на экран с помощью функции printf. Функция max_matr также принимает три аргумента: m, n и q. Она ищет максимальный элемент матрицы. Для этого она инициализирует переменную max значением первого элемента матрицы и затем сравнивает каждый элемент матрицы с этим максимальным значением. Если текущий элемент больше, то он становится новым максимальным значением. В конце функция выводит найденный максимум на экран. В функции main создается матрица заданного размера, вводится на экран сообщение с просьбой ввести размеры матрицы, после чего вызывается функция vvod_matr для заполнения матрицы. Затем вызывается функция max_matr для поиска максимального элемента матрицы. В конце работы программы вызывается функция getch для приостановки выполнения программы до нажатия клавиши. Код работает корректно, но есть некоторые проблемы с памятью. Функция malloc выделяет память под матрицу, но в конце программы эта память не освобождается. Это может привести к утечкам памяти в долгосрочной перспективе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д