Построить матрицу по правилу - C (СИ)
Формулировка задачи:
Здравствуйте! Помогите пожалуйста решить программу.
По матрице A = ||aij|| размером 10x10 построить матрицу B = ||bij|| того же размера, элемент bi которой равен минимальному элементу треугольника в A, определяемого элементом aij:
Буду очень благодарен за помощь в решении. Большое спасибо.
Решение задачи: «Построить матрицу по правилу»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(void) { int nRow = 9; int nCol = 9; ; int **b = malloc(nRow * sizeof(int*)); for (int i = 0; i < nRow; ++i) *(b + i) = (int*) calloc(nCol, sizeof(int)); //тривиальная задача - диагональ i==j , i и j заданы, условие для верхнего треугольника: // при заданном i имеем j>=i && j <=j заданного. Аналогично для нижнего. int row = 1, col = nCol / 2 + 1; for (int i = 0; i < nRow; ++i) for (int j = 0; j < nCol; ++j) { if (i >= row && j >= i && j <= col) *(*(b + i) + j) = 1; if (i <= nRow - 1 - row && j <= i && j >= nCol - col - 1) *(*(b + i) + j) = 2; } for (int i = 0; i < nRow; ++i) { for (int j = 0; j < nCol; ++j) printf("%3d", b[i][j]); puts(""); } for (int i = 0; i < nRow; ++i) free(b[i]); free(b); return EXIT_SUCCESS; }
Объяснение кода листинга программы
В этом коде:
- b - это двумерный массив (матрица), который был выделен динамически с помощью функции
malloc()
. - nRow и nCol - это переменные, которые определяют размер матрицы.
- В цикле
for
происходит заполнение матрицы значениями. Условие в скобках(i >= row && j >= i && j <= col)
проверяет, что элемент находится в верхнем треугольнике матрицы. Если это так, то значение этого элемента устанавливается в 1. - Аналогично, условие в скобках
(i <= nRow - 1 - row && j <= i && j >= nCol - col - 1)
проверяет, что элемент находится в нижнем треугольнике матрицы. Если это так, то значение этого элемента устанавливается в 2. - Затем матрица выводится на экран с помощью цикла
for
и функцииprintf()
. - После использования матрицы, она освобождается с помощью функции
free()
. - В конце программы возвращается код успеха
EXIT_SUCCESS
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д