Получить новую матрицу из исходной - 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, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д