Получить новую матрицу из исходной - C (СИ)
Формулировка задачи:
Получить матрицу В (nxn), в которой элемент Bij определяется как произведение наибольшего и наименьшего элемента исходной матрицы из области, определяемой индексами i и j следующим образом:
Решение задачи: «Получить новую матрицу из исходной»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 7 #define M 7 int main() { int A[N][N], B[N][N], i, j, k, m, minRow, minCol, maxRow, maxCol; srand(time(NULL)); for(i = 0; i < N; i++, putchar('\n')) for(j = 0; j < M; j++) printf("%3d", A[i][j] = rand() % 27 + 1); putchar('\n'); for(i = 0; i < N; i++, putchar('\n')) for(j = 0; j < M; j++){ if(i != j){ if(i > j) printf("%5d", B[i][j] = B[j][i]); else{ minCol = minRow = maxCol = maxRow = i; for(k = i; k <= j; k++){ for(m = i; m <= j; m++){ if(A[k][m] < A[minRow][minCol]){ minRow = k; minCol = m; } if(A[k][m] > A[maxRow][maxCol]){ maxRow = k; maxCol = m; } } } printf("%5d", B[i][j] = A[minRow][minCol] * A[maxRow][maxCol]); } } else printf("%5d",B[i][j] = A[i][j]); } return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с функциями ввода-вывода, генерацией случайных чисел и временем.
- Определяются значения N и M, которые представляют собой размеры матрицы.
- В основной функции int main() инициализируются матрицы A и B, а также переменные i, j, k, m, minRow, minCol, maxRow, maxCol.
- С помощью функции srand(time(NULL)) инициализируется генератор случайных чисел текущим временем.
- С помощью двух вложенных циклов заполняется матрица A случайными числами от 1 до 27.
- С помощью функции printf выводится на экран содержимое матрицы A.
- С помощью двух вложенных циклов происходит сравнение элементов матрицы A и если элемент A[i][j] не равен элементу A[j][i], то выполняется блок кода, который находит минимальный и максимальный элементы в текущей строке и столбце матрицы A и сохраняет их в переменные minRow, minCol, maxRow, maxCol.
- С помощью функции printf выводится на экран содержимое матрицы B, которое представляет собой произведение минимального и максимального элементов в текущей строке и столбце матрицы A.
- Возвращается значение 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д