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