Двумерные массивы
Часто при решении практических задач возникает потребность в использовании таблиц, матриц и т. д. В таком случае используются двухмерные (и более) массивы. Допустим, необходимо обработать некоторые данные из таблицы. В таблице есть две характеристики: количество строк и количество столбцов. Также и в двумерном массиве, кроме количества элементов массива, есть такие характеристики как, количество строк и количество столбцов двумерного массива. То есть, визуально, двумерный массив — это обычная таблица, со строками и столбцами. Фактически двумерный массив — это одномерный массив одномерных массивов. Структура двумерного массива, с именем A, размером N на M показана на рис. 1)
| a[0][0] | a[0][1] | a[0][2] | a[0][3] | . | a[0][M] |
| a[1][0] | a[1][1] | a[1][2] | a[1][3] | . | a[1][M] |
| a[2][0] | a[2][1] | a[2][2] | a[2][3] | . | a[0][M] |
| . | . | . | . | . | . |
| a[N][0] | a[N][1] | a[N][2] | a[N][3] | . | a[n][M] |
Рис. 1 — Структура двумерного массива
- N — количество строк двумерного массива;
- M — количество столбцов двумерного массива;
- N × M — количество элементов массива.
Синтаксис объявления двумерного массива:
тип_данных имя_массива[количество_строк][количество столбцов];
В объявлении двумерного массива, также как и в объявлении одномерного массива, первым делом, нужно указать:
- тип данных;
- имя массива.
Затем, в первых квадратных скобках указывается количество строк двумерного массива, во вторых квадратных скобках — количество столбцов двумерного массива.
Рассмотрим пример объявления двумерного массива. Допустим нам необходимо объявить двумерный массив A(5×3), с количеством строк 5 и количеством столбцов 3.
Объявление такого двумерного массива:
int a[5][3];
- a — имя целочисленного массива
- 5 — количество строк двумерного массива;
- 3 — количество столбцов двумерного массива.
Инициализация двумерного массива:
В данном массиве 5 строк, 3 столбца. после знака присвоить ставятся общие фигурные скобочки, внутри которых ставится столько пар фигурных скобок, сколько должно быть строк в двумерном массиве, причём эти скобки разделяются запятыми. В каждой паре фигурных скобок записывается через запятую элементы одной строки двумерного массива. Во всех фигурных скобочках количество элементов должно совпадать. Так как в массиве пять строк, то и внутренних пар скобок тоже пять. Графически двумерный массив будет выглядеть, как двумерная таблица (рис. 2).
Рис. 2 — Двумерный массив
В каждой ячейке двумерного массива A показано значение, в нижнем правом углу показан индексы данной ячейки: номер строки и номер столбца.
Чтобы обратиться к элементам двумерного массива, потребуется два индекса:
Для доступа ко всем элементам двумерного массива требуются два цикла: один для строки и один для столбца. Поскольку доступ в двумерных массивах обычно осуществляется построчно, индекс строки используется в качестве внешнего цикла.
Заполнение двумерного массива случайными числами
Пример. Каждому элементу массива А(5×5) присваивается случайное вещественное число в диапазоне [5;15].
Заполнение двумерного массива вычисляемыми значениями
Пример. Каждому элементу массива А(6×6) присваивается значение, первая цифра которого указывает номер строки, а вторая цифра — номер столбца для этого значения (нумерация с 1).
Вывод элементов двумерного массива на экран
Для того, чтобы получить ровные столбцы, необходимо выводить числа так, чтобы на каждое выводимое число отводилось бы одинаковое число позиций (например, 4). Причем «лишние» позиции были бы заполнены пробелами.
Для того, чтобы выводимое число или строка имело в точности заданную ширину, необходимо перед выводом его на экран для потока cout вызвать метод width с соответствующим значением параметра. Данный метод устанавливает ширину поля для выводимого значения.
Пример. На экран выводятся элементы массива А(5×5).
Рис. 3 — Результат вывода элементов двумерного массива на экран
Рис. — —>
C++, Создать матрицу и заполнить ее случайными числами
Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее на экран.

5 Responses
подскажите, а почему при удалении двухмерного массива цикл удаления написан для одномерного массива?
наверное, потому что двумерный массив — это массив массивов, а[i]-это i-я строчка, и мы удаляем каждую строчку таким образом
Подскажите, как сделать, чтобы в массиве были и отрицательные элементы?
вместо:
a[i][j] = rand() % 10;
напишите например так:
a[i][j] = (rand() % 10)-10;
А как создать одномерный массив на основе этой программы, пробовал удалить второй цикл, выдает ошибку.
Заполнение матрицы случайными числами
помогите пожалуйста.нужно сгенерировать 10 матриц и заполнить их случайными числами от 0 до 1.матрица объявляется int **M.
Добавлено через 29 минут
Заполнение матрицы случайными числами
В написании программы возникла потребность случайного заполнения двухмерного массива.Как правильно.
Заполнение матрицы случайными числами
У меня есть код. #include <stdafx.h>; #include <iostream>; #include <stdio.h>; #include.
Заполнение матрицы случайными не повторяющимися числами
Требуется заполнить матрицу случайными не повторяющимися числами. Помогите найти ошибку в коде .
Заполнение матрицы случайными отрицательными числами
Как сделать рандоме с отрицательными числами?
Написал для одной, а нужно 10?
Добавлено через 6 минут
Заполнение случайными числами
у меня вот какая проблема. вот часть программы заполнения массива случайными числами. но каждый.
Заполнение массива случайными числами
Здравствуйте. Необходимо заполнить два массива случайными числами. Проблема состоит в том, что.
Заполнение вектора случайными числами
Как сделать сортировку? Желательно подробно. И почему рандомные числа одни и те же? #include.
Generate a Matrix of Random Numbers in C++
In this tutorial, we will learn how to generate matrix of random numbers in C++.
A matrix is known as a two-dimensional array/vector. It is represented in the form of rows and columns. It is used in many practical situations, and for many general purposes. It is synonymously associated with the form of a table, containing horizontal rows and vertical columns.
Usually, a matrix is expected to carry some meaningful data. It holds some useful data relevant to some real word entity or quantities. However, in many cases, it is required to create this data when it cannot be procured from any single source. This often occurs when machine learning models are needed to be trained with large sets of data. Hence, the need arises to create random two-dimensional arrays.
The full program is at the bottom. Scroll down if you want to skip down the procedure.
Using the Random functions
In C++, we have the declaration of the array given below:
This helps initialize an array of 3 x 3 size and take user-input for each element row-wise.
To create the array, having each element assigned and decided randomly, we use the header file stdlib.h to our program. This contains the rand() and srand() functions. The srand() function is used for setting the seed for generating random values through the rand() function. The full form of srand is ‘Set seed for rand.’ A number is generated between 0 and RAND_MAX.
If the rand() function is used without calling the srand() function first, then the same random integers will be returned every time the program is run since it will be treated as srand(1), or in other words, the seed for the random number generator will be fixed.
The output, when the program is run for the first time, would be:
The second time, the output would still be:
No matter how many times the program, the output will always be:
However, if we initialize the srand() function using the time.h header file with the current system, which will be different for every single time the program is run. This would result in the rand() function delivering random values every time the function is called, due to the existence of a different seed value for every execution. Hence, when we change the code to this:
We may get the first output as:
The second output will be different, like:
And the third output would also be distinct:
Create a Random Matrix in C++
Combining the method of matrix traversal and the random number generating functions, we can create a C++ code that would implement the original concept of creating a two-dimensional array full of elements generated randomly. The code is as follows(for a 3 x 3 matrix) :
The dimensions of the matrix can be changed according to the user’s requirements. However, the end result would be the generation of a matrix filled with random integer elements, which is exactly what was required. The output would be:
In this article, the concepts of matrices and random functions were discussed, as well as methods of how they can be used. These two concepts were also combined to create a two-dimensional array having each element of it generated randomly.