Найти разность модулей 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();
}

Объяснение кода листинга программы

  1. Ввод данных: количество строк, количество столбцов, начальная граница генерации числа, конечная граница генерации числа.
  2. Выделение памяти под матрицу.
  3. Генерация случайных чисел в заданном диапазоне и заполнение матрицы.
  4. Вывод содержимого матрицы на экран.
  5. Поиск минимального и максимального элемента матрицы и присвоение их значениям переменных min и max.
  6. Вычисление разности модулей max и min.
  7. Ввод данных с клавиатуры.
  8. Вывод результата на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы