C/C++

Работа с матрицами. Нужно найти сумму элементов каждой строки. Помогите пожалуйста ????????

В матрице D(5,6) найти сумму элементов каждой четной строки и произведение элементов каждой нечетной строки. Из полученных сумм и произведений образовать массив X(5) .
//четные тут считаются строки с индексом 1, 3, 5 потому что по порядку они 2, 4, 6.
//если считать чет/нечет по индексу, измените строку if (i % 2) rearr[i] += arr[i][j]; на
// if (!(i % 2)) rearr[i] += arr[i][j];
// В условии не сказано, поэтому массив заполняется случайн числами от 0 до 20

#include < iostream >
using namespace std;

int main()
{
setlocale(0, "");
int arr[5][6];
int rearr[5]{};
for (int i = 0; i < 5; i++)
for (int j = 0; j < 6; j++)
arr[i][j] = rand() % 21;

for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 6; j++)
cout << arr[i][j] << "\t";
cout << endl;
}

for (int i=0; i<5; i++)
for (int j = 0; j < 6; j++)
{
if (i % 2) rearr[i] += arr[i][j];
else { if (j == 0) rearr[i] = arr[i][j]; else rearr[i] *= arr[i][j]; }
}

for (int i = 0; i < 5; i++)
cout << rearr[i] << "\t";

}
Салават Нагуманов
Салават Нагуманов
51 411
Лучший ответ
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
int sum(const int* box, const size_t n) {
auto acc = 0;
for (auto i = 0U; i < n; ++i) acc += box[i];
return acc;
}
int mul(const int* box, const size_t n) {
auto acc = 1;
for (auto i = 0U; i < n; ++i) acc *= box[i];
return acc;
}
void show(const int* box, const size_t n, const streamsize w) {
for (auto i = 0U; i < n; ++i) cout << setw(w) << box[i];
puts("");
}
int main() {
uniform_int_distribution<> uid(1, 9);
mt19937 gen{ random_device()() };
int d[5][6];
for (auto& r : d) for (auto& x : r) x = uid(gen);
for (const auto& r : d) show(r, size(r), 5);
puts("");
int x[size(d)];
for (auto i = 0U; i < size(x); ++i) {
x[i] = i & 1? sum(d[i], size(d[i])) : mul(d[i], size(d[i]));
}
show(x, size(x), 6);
system("pause > nul");
}
АА
Ака~ Акацуки
72 975

Похожие вопросы