В матрице найти строки с максимальным и минимальным элементами - C (СИ)
Формулировка задачи:
В матрицы размерностью mxn найти строки с максимальным и минимальным элементами. Вывести на экран найденные строки.
Решение задачи: «В матрице найти строки с максимальным и минимальным элементами»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 200
void main(void)
{
int arr[N][N], min, max, min_i, max_i, n, m, i, j;
printf("Enter matrix size m*n (m:n):"); scanf("%i %i", &m, &n); //Вводим размер матрицы
srand(time(NULL));
for (i = 0; i < m; i++) // Задаем и выводим случайную матрицу
{
for (j = 0; j < n; j++)
{
arr[i][j] = rand() % 150 - 50;
printf("%4i", arr[i][j]);
}
printf("\n");
}
max = arr[0][0]; min = arr[0][0]; //Начальные значения для поиска
min_i = 0; max_i = 0;
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
{
if (min > arr[i][j]) //Ищем минимальное значения
{
min_i = i;
min = arr[i][j];
}
if (max < arr[i][j]) // Ищем максимальное значения
{
max_i = i;
max = arr[i][j];
}
}
printf("String[%i] with a min element: \n", min_i + 1); // Выводим строки с минимальным и максимальным
for (i = 0; i < m; i++)
printf("%4i", arr[min_i][i]);
printf("\n\nString[%i] with a max element: \n", max_i + 1);
for (i = 0; i < m; i++)
printf("%4i", arr[max_i][i]);
system("Pause");
}
Объяснение кода листинга программы
- Ввод размера матрицы m*n с помощью функции scanf.
- Создание случайной матрицы размером m*n с помощью цикла for и функции rand().
- Инициализация переменных max и min первым элементом первой строки матрицы.
- Инициализация переменных min_i и max_i значением 0.
- Поиск минимального и максимального значений в матрице с помощью двух вложенных циклов for и условных операторов if.
- Вывод строк с минимальным и максимальным значениями с помощью функции printf.
- Ввод в консоль командкой system(
Pause) для приостановки работы программы до нажатия клавиши.