Определить в каждой строке матрицы max и min элементы, после чего поменять их местами - C (СИ)
Формулировка задачи:
Дана матрица D(8x8), элементами которой являются целые числа. определить в каждой строке max и min элементы, после чего поменять их местами.
Решение задачи: «Определить в каждой строке матрицы max и min элементы, после чего поменять их местами»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
int main() {
//setlocale(0,"");
int m,n,i,j,max,min;
printf("Введите числа n и m для определения размерности массива\n");
scanf("%d %d",&n,&m);
int matrix[n][m];
for (i=0;i<m;i++) {
for (j=0;j<n;j++) matrix[i][j]=rand()%20-10;
}
for (i=0;i<m;i++) {
for (j=0;j<n;j++) printf("%d\t",matrix[i][j]);
printf("\n");
}
max=-11;
min=11;
for (i=0;i<m;i++) {
for (j=0;j<n;j++) {
if (matrix[i][j]<=min) {
min=matrix[i][j];
}
if (matrix[i][j]>=max) {
max=matrix[i][j];
}
}
}
for (i=0;i<m;i++) {
for (j=0;j<n;j++) {
if (matrix[i][j]==max) matrix[i][j]=min;
else if(matrix[i][j]==min) matrix[i][j]=max;
}
}
printf("\n");
for (i=0;i<m;i++) {
for (j=0;j<n;j++) printf("%d\t",matrix[i][j]);
printf("\n");
}
getch();
return 0;
}
Объяснение кода листинга программы
- Ввод размера матрицы m и n с помощью функции scanf.
- Инициализация матрицы случайными числами с помощью функции rand() и вычисление максимального и минимального значения матрицы.
- Поиск минимального и максимального значения в матрице с помощью двух вложенных циклов.
- Замена максимального и минимального значения местами с помощью двух вложенных циклов.
- Вывод матрицы на экран с помощью двух вложенных циклов и функции printf.
- Получение ввода от пользователя с помощью функции getch.
- Возвращение значения 0, чтобы указать, что программа успешно завершилась.