Заполнить матрицу по правилу - C (СИ) (74978)
Формулировка задачи:
Задача такова - написать функцию которая заполняла бы матрицу след. образом: (смотреть фото)
для квадратной матрицы я написал код, а вот как сделать при разном количестве строк и столбцов? помогите пжлста...
void Generare(int x[NMAX][NMAX], int n, int m){ int i,j; for (i = 0; i<n; i++){ for (int j = 0; j<m; j++){ x[i][j] = (n-i) + m*j; printf("%d\t ", x[i][j]); } printf("\n"); } }
Решение задачи: «Заполнить матрицу по правилу»
textual
Листинг программы
void Generate(int x[NMAX][NMAX], int n, int m) { int i,j,k; for (j = 0, k = 1; j<m; j++) for (i = n-1; i>-1; i--) x[i][j] = k++; for (i = 0; i<n; i++) { for (j = 0; j<m; j++) printf("%5d", x[i][j]); printf("\n"); } }
Объяснение кода листинга программы
В данном коде реализована функция Generate, которая принимает на вход матрицу x, а также значения n и m. Значение n определяет количество строк в матрице, а значение m - количество столбцов. Внутри функции происходит заполнение матрицы по определенному правилу. Для этого используются два вложенных цикла:
- Первый цикл проходит по всем строкам матрицы (от первой до последней).
- Второй цикл проходит по всем столбцам матрицы (от последнего до первого). Внутри этих циклов происходит заполнение ячейки матрицы x[i][j] значением k, которое увеличивается на единицу при каждой итерации. После заполнения матрицы, происходит вывод её содержимого на экран. Для этого используется ещё один вложенный цикл, который проходит по всем строкам матрицы. В каждой итерации этого цикла выводится содержимое одной строки матрицы, где каждое число занимает пять символов в ширину. Таким образом, данный код генерирует матрицу заданного размера, заполняет её числами, увеличивающимися на единицу от левого нижнего угла к правому верхнему, а затем выводит её содержимое на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д