Найти разность модулей max и min элемента матрицы - C (СИ)
Формулировка задачи:
Помогите, пожалуйста, написать программу, определяющую разность модулей максимального и минимального элементов матрицы. Размерность матрицы вводится пользователем с клавиатуры, а сама матрица заполняется случайными числами из указанного пользователем диапазона.
Решение задачи: «Найти разность модулей max и min элемента матрицы»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <locale>
void GEN(int **massive, int a, int b, int N, int M)
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
massive[i][j] = rand() % (b - a + 1) + a;
}
}
}
int main()
{
setlocale(LC_ALL, "Russian");
int N, a, b, M;
printf("Введите количество строк матрицы: ");
scanf_s("%d", &N);
printf("Введите количество столбцов матрицы: ");
scanf_s("%d", &M);
printf("Введите начальную границу генерации числа: ");
scanf_s("%d", &a);
printf("Введите конечную границу генерации числа: ");
scanf_s("%d", &b);
int **massive;
massive = (int**)malloc(N * sizeof(int*));
for (int i = 0; i < N; i++)
{
massive[i] = (int*)malloc(M * sizeof(int));
}
GEN(massive, a, b, N, M);
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
printf("%d\t", massive[i][j]);
}
printf("\n");
}
printf("\n");
int min = massive[0][0], max = massive[0][0];// присваиваем первый элемент матрицы в min и max
for (int j = 0; j < M; j++)//проходим по строкам
for (int i = 1; i < N; i++)//проходим по столбцам
{
if (massive[j][i] < min)//если встретили элемент меньше чем min то присваиваем его к min
{
min = massive[j][i];
}
else if (max < massive[j][i])// тоже самое только с максимумом
{
max = massive[j][i];
}
}
printf("max = %d\nmin = %d", max, min);
int razn_abs = fabs(max) - fabs(min);//fabs функция модуля погугли сразу поймешь
printf("\nРазность модулей = %d", razn_abs);
_getch();
}
Объяснение кода листинга программы
- Ввод данных: количество строк, количество столбцов, начальная граница генерации числа, конечная граница генерации числа.
- Выделение памяти под матрицу.
- Генерация случайных чисел в заданном диапазоне и заполнение матрицы.
- Вывод содержимого матрицы на экран.
- Поиск минимального и максимального элемента матрицы и присвоение их значениям переменных min и max.
- Вычисление разности модулей max и min.
- Ввод данных с клавиатуры.
- Вывод результата на экран.