Вывести квадратную матрицу указанного пользователем размера - C (СИ)
Формулировка задачи:
Помогите пожалуйста составить программу, которая печатает на экране квадратную матрицу, размерность
которой вводит пользователь с клавиатуры.
1 1 . . . . 1
2 2 . . . 2
3 3 3 . 3
. . . . .
n . . . 0
Решение задачи: «Вывести квадратную матрицу указанного пользователем размера»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { int n; int **mas; int temp; scanf("%d",&n); temp = n; mas = (int **) calloc(n,sizeof(int*)); for (int i = 0; i < n; i++) mas[i] = (int *) calloc(n,sizeof(int)); for (int i = 0; i < n; i++) { for(int j = n - i - 1; j >= 0; j--) mas[i][j] = i + 1; } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) printf("%d\t",mas[i][j]); printf("\n"); } for (int i = 0; i < n; i++) free (mas[i]); free (mas); }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
n
- переменная для хранения размера матрицы, который пользователь должен ввести;mas
- это указатель на массив указателей, который будет использоваться для хранения адресов строк матрицы;temp
- временная переменная для хранения значения переменнойn
.
- Запрашивается у пользователя размер матрицы с помощью функции
scanf()
. - Выделяется память под матрицу с помощью функции
calloc()
. Для каждой строки матрицы выделяется память под массивn
элементов типаint
. - В цикле заполняются все строки матрицы. Для каждой строки в цикле
for
заполняются элементы, начиная с конца строки, значениями от1
доn
. - В цикле
for
выводятся все элементы матрицы на экран через табуляцию. - Освобождается память, выделенная под каждую строку матрицы, с помощью функции
free()
. - Освобождается память, выделенная под массив указателей
mas
, с помощью функцииfree()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д