Составить функцию нахождения минимального элемента матрицы - 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 выделяет память под матрицу, но в конце программы эта память не освобождается. Это может привести к утечкам памяти в долгосрочной перспективе.