Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как напечатать enum class? Как напечатать enum class? Enum class находится в интерфейсе строка 5. Мне нужно чтобы напечаталось допустим Magical_Realism. Функция которая печатет находится в реализации 191 строка. ... https://www.cyberforum.ru/ cpp-beginners/ thread2492564.html C++ Не понимаю как работает алгоритм
Всем доброго времени суток. Настиг такой вопрос, с которым уже более недели не могу разобраться: искал везде, читал всё, на англоязычном инете ничего полезного не нашел(на русскоязычном вообще ничего...
C++ Реализовать функцию, которая принимает массив, а также число n, и возвращает индекс Реализовать функцию, которая принимает массив (плюс его длину) , а также число n, и возвращает индекс числа в массиве или -1, если такого числа нет. Прототип: int Search (int a , const int n, int... https://www.cyberforum.ru/ cpp-beginners/ thread2492542.html C++ Перевод указателя на член класса в обычный указатель Добрый день. Есть некоторый API, который принимает обычные указатели на функцию и поэтому при создании приложения на ООП возникает проблема перевода указателя на член класса в обычный указатель. ... https://www.cyberforum.ru/ cpp-beginners/ thread2492518.html
C++ Нейронная сеть на c++
Уважаемые форумчане нужна ваша помощь с нейронной сетью на c++! На днях захотел написать прогу - многослойный перцептрон на c++, вроде информации много и пытался менять код, но всё одинаково, прога...
C++ Написать функцию, которая возвращает сумму элементов массива с номерами от left до right https://www.cyberforum.ru/ cpp-beginners/ thread2492479.html
Написать функцию, которая принимает массив размера N и целые числа left и right и возвращает сумму элементов массива с номерами от left до right включительно. Задать размерность массива как...
C++ бинарный файл содержащий определенную последовательность нулей и единиц https://www.cyberforum.ru/ cpp-beginners/ thread2492383.html
как мне создать бинраник длиной скажем 6 бит, содержащий соответственно шесть рандомных бит? например 011001. Везде где что находил, там запись побайтово. Записываются определенные типы данных. А...
Отсортировать 3 числа в порядке неубывания ( #define swap ) C++
Всем привет, возможно ли через #define сделать что-то подобное? #define SWAP(x,y,z) ( if ( y > z ) swap(y,z); if ( x > y ) swap(x,y); if (y > z) swap(y,z)) Чтобы не писать постоянно в main...
C++ Класс, как сделать публичную функцию которая содержала бы приватные? https://www.cyberforum.ru/ cpp-beginners/ thread2492267.html
Как сделать в классе публичную функцию, которая бы содержала приватные функции? Давайте посмотрим на публичную функцию enter() (строка 4 и 23). Она выполняет строку 27 и на этом заканчивается. Что...
C++ Хочу научиться делать читы и совершенствоваться! https://www.cyberforum.ru/ cpp-beginners/ thread2492187.html
знаю основы с++, но есть немного того, чего не понял. хочу научиться использовать хуки, работать с памятью процессора... Кто может стать моим наставником?
C++ Выделение блока памяти нулевого размера
Каков результат оператора type* ptr = new type;?
C++ Реализация функции swap_min https://www.cyberforum.ru/ cpp-beginners/ thread2492117.html
Здравствуйте, пытаюсь решить на степике следующую задачу: Реализуйте функцию swap_min, которая принимает на вход двумерный массив целых чисел, ищет в этом массиве строку, содержащую наименьшее среди...
бах-бах и в продакшен!
2979 / 1598 / 562
Регистрация: 23.09.2014
Сообщений: 4,934
Записей в блоге: 4
20.08.2019, 13:49 0

Поэлементно просуммировать два динамических двумерных массива - C++ - Ответ 13780807

20.08.2019, 13:49. Показов 4280. Ответов 10
Метки (Все метки)

Ответ

Цитата Сообщение от Nuril Посмотреть сообщение
как выводить максимально все элементы без мусора?
может их как то по особенному инициализировать?
например:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
///----------------------------------------------------------------------------|
///Тема: «Многомерные динамические массивы»
///Задания для самостоятельной работы #4.
///----------------------------------------------------------------------------:
#include <iostream>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
#define FORi(n) for(int i = 0; i < n; ++i)
#define FORj(n) for(int j = 0; j < n; ++j)
#define LOG(n)  std::cout  << std::setw(6) << #n << " = " << n << "\n"
 
///----------------------------------------------------------------------------|
/// Двумерный динамический массив инкапсулированный в структуре.
///----------------------------------------------------------------------------:
template<class T>
class carr
{
public:
    carr(int _r, int _c) : arr(NULL), row(_r), column(_c)
    {   arr = create_arr(row, column);
    }
    
   ~carr()
    {   delete_arr(arr);
    }
    
    //------------------------------------------------------resize(int r, int c)
    void resize(int _r, int _c)
    {   row    = _r;
        column = _c;
        if(arr != NULL) 
        {   delete_arr   (arr);
            create_arr(row, column);
        }
    }
    
    //-----------------------------------------------------------init_one(T val)
    void init_one(T _val)
    {   FORi(row)
            FORj(column)
                arr[i][j] = _val;
    }
 
    int row_()
    {   return row;
    }
    int column_()
    {   return column;
    }
    
    //-----------------------------------------------------------Вывод на экран:
    void show()
    {   //std::cout << "\n";
        LOG(row);
        LOG(column);
        FORi(row)
        {   FORj(column)
            {   if(arr[i][j] != -777)
                std::cout << std::setw(5) 
                          << std::setprecision(4) 
                          << std::setfill(' ') << arr[i][j] << " \t";
                else 
                std::cout << std::setw(5) 
                          << std::setprecision(4) 
                          << std::setfill(' ') << " empty\t";
            }
            std::cout << "\n";
        }
        std::cout << "\n";
    }
 
    T* operator [](const int i)const {return arr[i];}
    
private:
    T** arr;
    int row, column;
    
    //--------------------------------------------------------------create_arr()
    T** create_arr(int r, int c)
    {   T** _arr;
        _arr = new T*[r];
        FORi(r)
        {   _arr[i] = new T[c];
        }
        return _arr;
    }
    
    //--------------------------------------------------------------delete_arr()
    void delete_arr(T**& p)
    {   FORi(row)
        {   delete[] p[i];
        }
        delete[] p;
        p = NULL;
    }
    
};
 
carr<int>* Summation(carr<int>& mat1, carr<int>& mat2);
 
///----------------------------------------------------------------------------|
/// Старт.
///----------------------------------------------------------------------------:
int main()
{   system("mode 31,50");
    srand(time(NULL));
///----------------------------------------------------------------------------|
/// Задание 4
///----------------------------------------------------------------------------:
 
    cout <<
        "\n///-------------------------|" <<
        "\n/// Data matrix 1           |" <<
        "\n///-------------------------:\n";
    int ROW = 2, COLUMN = 4;
    //cin >> ROW >> COLUMN;
    carr<int> matrix_1(ROW, COLUMN);
    FORi(ROW)
    {   FORj(COLUMN)
        {   matrix_1[i][j] = rand() % 5;
        }
    }
    matrix_1.show();
    
    cout <<
        "\n///-------------------------|" <<
        "\n/// Data matrix 2           |" <<
        "\n///-------------------------:\n";
    ROW    = 4,
    COLUMN = 2;
    //cin >> ROW >> COLUMN;
    carr<int> matrix_2(ROW, COLUMN);
    FORi(ROW)
    {   FORj(COLUMN)
        {   matrix_2[i][j] = rand() % 5;
        }
    }
    matrix_2.show();
 
    cout <<
        "\n///-------------------------|" <<
        "\n/// Result matrix           |" <<
        "\n///-------------------------:\n";
    carr<int>* m3 = Summation(matrix_1, matrix_2);
    m3->show();
 
    delete m3;
    cin.get();
    return 0;
}
 
///----------------------------------------------------------------------------|
/// Суммирование двумерных динамических массивов.
///----------------------------------------------------------------------------:
carr<int>* Summation(carr<int>& m1, carr<int>& m2)
{
    int ROW3_MAX    = std::max(m1.row_(),    m2.row_());
    int COLUMN3_MAX = std::max(m1.column_(), m2.column_());
 
    int ROW3_MIN    = std::min(m1.row_(),    m2.row_());
    int COLUMN3_MIN = std::min(m1.column_(), m2.column_());
    
    carr<int>* m3 = new  carr<int>(ROW3_MAX, COLUMN3_MAX);
               m3->init_one(-777);
 
    FORi(m1.row_())
    {   FORj(m1.column_())
        {   (*m3)[i][j] = m1[i][j];
        }
    }
    FORi(m2.row_())
    {   FORj(m2.column_())
        {   (*m3)[i][j] = m2[i][j];
        }
    }
    FORi(ROW3_MIN)
    {   FORj(COLUMN3_MIN)
        {   (*m3)[i][j] += m1[i][j];
        }
    }
    
    return m3;
}


Вернуться к обсуждению:
Поэлементно просуммировать два динамических двумерных массива C++
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2019, 13:49
Готовые ответы и решения:

Найти среднее арифметическое элементов массива, сравнить два массива поэлементно
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; void main() {...

Сложить два массива поэлементно
Необходимо базовый класс Array: массив и поле для хранения количества элементов массива......

Сложить поэлементно два массива
Помогите пожалуйста, в чем ошибка. Некорректно складывает, в итоге получается неправильный ответ...

Поэлементно сложить два массива
Всем привет, сижу делаю задание: суть такова: надо поэлементно сложить 2 массива, но при этом...

10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2019, 13:49

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Поэлементно суммировать два заданных массива
Подскажите пожалуйста как решить задачу: Дано два массива 1-10, нужно чтобы первый цифр первого...

Сложить поэлементно два массива I и J. Результат в массиве I
Помогите пожалуйста написать программу: Сложить поэлементно два массива I(10) и J(10). Результат в...

Сложить два двумерных массива
Как сложить два двумерных массива???Вот ф-ии для ввода двух массивов и геттеры для них. Надо ф-ию...

Сравнить поэлементно два одномерных массива, и через if определить, равны эти элементы или нет
Люди помогите пожалуйста Нужно сравнить по элементам два одномерных массива и через if определить...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.