Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 07.11.2020
Сообщений: 36
1

Как определить и инициализировать двухмерный массив?

11.12.2020, 21:31. Показов 1084. Ответов 10

Author24 — интернет-сервис помощи студентам
Как определить и инициализировать двухмерный массив в с++, если размер массива не квадратный и больше 3 ???
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2020, 21:31
Ответы с готовыми решениями:

Инициализировать двухмерный массив arr_quiz[8][3] при объявлении оценками, данными в таблице (row=8, col=3)

Как инициализировать двухмерный массив?
Если использовать к примеру следующий кусок кода error_reporting(E_ALL); $testArr = ; for...

Создать из исходного массива массив индексов отрицательных элементов. это одномерный массив двухмерный массив Определить
1. Создать из исходного массива массив индексов отрицательных элементов. Это одномерный массив 2....

Дан Двухмерный массив.Определить:
1) В каком столбце массива сумма элементов меньше: в первом или в последнем; 2) В какой строке...

10
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
11.12.2020, 21:34 2
Инициализировать из какого источника? И тип элементов какой?
0
1 / 1 / 0
Регистрация: 07.11.2020
Сообщений: 36
11.12.2020, 21:36  [ТС] 3
Как понять источника? Любой тип элементов
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
11.12.2020, 21:38 4
Цитата Сообщение от Nastia911 Посмотреть сообщение
Как понять источника?
Можно инициализировать от генератора псевдослучайных чисел, можно с клавиатуры, а можно тупо забить нулями или фиксированным значением. И другие способы возможны. Конкретнее надо и однозначно.
0
1 / 1 / 0
Регистрация: 07.11.2020
Сообщений: 36
11.12.2020, 21:40  [ТС] 5
генератор случайных чисел
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
11.12.2020, 21:44 6
Вот функции создания массива и инициализации:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
template <typename T>
auto allocate_matrix(std::size_t row_count, std::size_t col_count)
{
    T ** matrix = new T* [row_count];
    for (std::size_t row = 0; row < row_count; ++row) matrix[row] = new T [col_count];
    return matrix;
}
 
template <typename T>
void deallocate_matrix(T ** matrix, std::size_t row_count)
{
    for (std::size_t row = 0; row < row_count; ++row) delete[] matrix[row];
    delete[] matrix;
}
 
template <typename T, class RandomGenerator>
void fill_matrix(T ** matrix, std::size_t row_count, std::size_t col_count, RandomGenerator&& gen)
{
    for (std::size_t row = 0; row < row_count; ++row)
    {
        for (std::size_t col = 0; col < col_count; ++col) matrix[row][col] = static_cast<T>(gen());
    }
}
Вариант их использования:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int main()
{
    std::size_t row_count, col_count;
    do
    {
        std::cout << "Число строк матрицы: ";
        std::cin >> row_count;
        std::cout << "Число столбцов матрицы: ";
        std::cin >> col_count;
    }
    while (row_count < 1 || col_count < 1);
 
    auto matrix = allocate_matrix<int>(row_count, col_count);
 
    std::mt19937 gen(std::random_device{}());
    std::normal_distribution<> dis{10, 5};
    fill_matrix(matrix, row_count, col_count, std::bind(dis, std::ref(gen)));
 
    // тут мы что-то делаем с матрицей
 
    deallocate_matrix(matrix, row_count);
 
    return 0;
}
0
1 / 1 / 0
Регистрация: 07.11.2020
Сообщений: 36
11.12.2020, 22:26  [ТС] 7
мне всетаки не совсем понятно, чем отличается квадратный размер массива от не квадратного
0
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
11.12.2020, 22:30 8
Лучший ответ Сообщение было отмечено Nastia911 как решение

Решение

Цитата Сообщение от Nastia911 Посмотреть сообщение
мне всетаки не совсем понятно, чем отличается квадратный размер массива от не квадратного
У квадратного число строк равно числу столбцов, т.е. row_count == col_count.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
11.12.2020, 23:27 9
Цитата Сообщение от Nastia911 Посмотреть сообщение
чем отличается квадратный размер массива от не квадратного
нет такого понятия квадратный размер массива есть понятие квадратный массив.

размер массива хотите задать в программе или ввести с клавиатуры ?
0
1 / 1 / 0
Регистрация: 07.11.2020
Сообщений: 36
12.12.2020, 00:10  [ТС] 10
задать в программе
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.12.2020, 00:14 11
Nastia911,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    const int n=4, m=5;
    int a[n][m];
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
        a[i][j]=rand()%9 + 1;
        cout << a[i][j] << " ";
        }
    cout << "\n";
    }
 
system("pause");
return 0;
}
1
12.12.2020, 00:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2020, 00:14
Помогаю со студенческими работами здесь

Дан двухмерный массив. Определить:
Дан двухмерный массив. Определить: a. минимальный элемент пятой строки массива; b. максимальный...

Дан двухмерный массив целых чисел. Определить:
Дан двухмерный массив целых чисел. Определить: а) среднее арифметическое четных элементов...

Двухмерный массив. Определить сумму четных элементов массива
Дан двухмерный массив целых чисел. Определить: а) сумму четных элементов массива; б) количество...

Дан двухмерный массив. Определить координаты минимального и максимального элемента
А) Координаты минимального элемента массива. Если элементов с минимальным значением несколько, то...

Дан двухмерный массив. Определить сумму всех элементов массива
Дан двухмерный массив. Определит сумму всех элементов массива. Заранее спасибо)

Дан двухмерный массив. Определить: координаты минимального элемента массива.
Дан двухмерный массив. Определить: координаты минимального элемента массива. Если элементов с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru