Сериалы Вам

Как написать программу на языке С: Динамический массив nXn

Динамический массив является одной из важных структур данных в программировании, которая позволяет нам управлять памятью во время выполнения программы. В этой статье мы рассмотрим, как создать и заполнить двумерный массив случайными числами на языке программирования С.

Шаги по созданию программы

Шаг 1: Подключение необходимых библиотек

В начале программы необходимо подключить необходимые библиотеки для работы с функциями, связанными с памятью и генерацией случайных чисел. Мы будем использовать библиотеки stdio.h, stdlib.h и time.h:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

Шаг 2: Определение размера массива

Далее нужно определить размер двумерного массива nXn. Мы попросим пользователя ввести значение n:

int n;
printf("Введите размер массива: ");
scanf("%d", &n);

Шаг 3: Создание двумерного массива

С помощью функции malloc() мы выделим память для двумерного массива размером nXn:

int **array = malloc(n * sizeof(int *));
for (int i = 0; i < n; i++) {
    array[i] = malloc(n * sizeof(int));
}

Шаг 4: Заполнение массива случайными числами

Теперь, когда мы создали массив, давайте заполним его случайными числами. Для этого нам понадобится использовать функцию rand() из библиотеки stdlib.h. Однако, чтобы генерация случайных чисел была по-настоящему случайной, мы должны сначала инициализировать генератор случайных чисел с помощью функции srand() из библиотеки time.h. Давайте сделаем это:

srand(time(NULL)); // Инициализация генератора случайных чисел

Теперь мы можем заполнить массив случайными числами с помощью двух вложенных циклов:

for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        array[i][j] = rand();
    }
}

Шаг 5: Вывод массива на экран

В конце программы выведите получившийся массив на экран. Для этого мы снова воспользуемся циклами:

printf("Массив случайных чисел:\n");
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        printf("%d ", array[i][j]);
    }
    printf("\n");
}

Шаг 6: Освобождение выделенной памяти

После работы с массивом необходимо освободить выделенную память, чтобы избежать утечек памяти. Для этого мы будем использовать функцию free():

for (int i = 0; i < n; i++) {
    free(array[i]);
}
free(array);

Завершение программы

Полный исходный код программы должен выглядеть следующим образом:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int n;
    printf("Введите размер массива: ");
    scanf("%d", &n);

    int **array = malloc(n * sizeof(int *));
    for (int i = 0; i < n; i++) {
        array[i] = malloc(n * sizeof(int));
    }

    srand(time(NULL)); // Инициализация генератора случайных чисел

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            array[i][j] = rand();
        }
    }

    printf("Массив случайных чисел:\n");
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%d ", array[i][j]);
        }
        printf("\n");
    }

    for (int i = 0; i < n; i++) {
        free(array[i]);
    }
    free(array);

    return 0;
}

Заключение

В этой статье мы рассмотрели, как создать и заполнить двумерный массив случайными числами на языке программирования С. Динамический массив позволяет нам гибко управлять памятью и создавать массивы различных размеров. Этот пример подчеркивает важность знания и использования динамических структур данных при разработке программ.