В квадратном массиве выделим четыре четверти, ограниченные
главной и побочной диагоналями (без учета элементов, расположенных
на диагоналях): верхнюю, нижнюю, левую и правую. Найти сумму
элементов:
а) верхней четверти;
б) правой четверти;
в) нижней четверти;
г) левой четверти.
Другие языки программирования и технологии
c++ двумерные масивы
int data[5][5]; // Заполнение самостоятельно
int mask[5][5]={{0,1,1,1,0},{2,0,1,0,3},{2,2,0,3,3},{2,0,4,0,3},{0,4,4,4,0}};
int cnt[5]={0};
for(int i=0;i<5;i++)for(int j=0;j<5;j++)cnt[mask[i][j]]+=data[i][j];
Примерно так :)
int mask[5][5]={{0,1,1,1,0},{2,0,1,0,3},{2,2,0,3,3},{2,0,4,0,3},{0,4,4,4,0}};
int cnt[5]={0};
for(int i=0;i<5;i++)for(int j=0;j<5;j++)cnt[mask[i][j]]+=data[i][j];
Примерно так :)
#include <iostream>
#include <random>
using namespace std;
int main() {
const auto n = 6U;
int matrix[n][n];
const uniform_int_distribution<> uid(1, 9);
random_device rd;
mt19937 gen(rd());
for (auto& row : matrix) for (auto& value : row) value = uid(gen);
for (auto& row : matrix) {
for (auto value : row) cout << ' ' << value;
cout.put('\n');
}
auto top = 0LL;
auto bottom = 0LL;
auto left = 0LL;
auto right = 0LL;
const auto l = n - 1U;
const auto r = n / 2U;
for (auto i = 0U; i < n; ++i) {
for (auto j = 0U; j < n; ++j) {
auto x = i + j;
if (i == j || x == l) continue;
if (i < j && x < l) top += matrix[i][j];
else if (i > j && x > l) bottom += matrix[i][j];
else if (j < r) left += matrix[i][j];
else right += matrix[i][j];
}
}
cout
<< "Sum top: " << top << '\n'
<< "Sum bottom: " << bottom << '\n'
<< "Sum left: " << left << '\n'
<< "Sum right: " << right << endl;
system("pause");
}
#include <random>
using namespace std;
int main() {
const auto n = 6U;
int matrix[n][n];
const uniform_int_distribution<> uid(1, 9);
random_device rd;
mt19937 gen(rd());
for (auto& row : matrix) for (auto& value : row) value = uid(gen);
for (auto& row : matrix) {
for (auto value : row) cout << ' ' << value;
cout.put('\n');
}
auto top = 0LL;
auto bottom = 0LL;
auto left = 0LL;
auto right = 0LL;
const auto l = n - 1U;
const auto r = n / 2U;
for (auto i = 0U; i < n; ++i) {
for (auto j = 0U; j < n; ++j) {
auto x = i + j;
if (i == j || x == l) continue;
if (i < j && x < l) top += matrix[i][j];
else if (i > j && x > l) bottom += matrix[i][j];
else if (j < r) left += matrix[i][j];
else right += matrix[i][j];
}
}
cout
<< "Sum top: " << top << '\n'
<< "Sum bottom: " << bottom << '\n'
<< "Sum left: " << left << '\n'
<< "Sum right: " << right << endl;
system("pause");
}
Похожие вопросы
- Помогите решить задачу на C++. Двумерные массивы.
- Помогите с одномерным масивом. Программа нужна на С или C++.
- суму елементів масиву з парними індексами та добуток елементів з непарними індексами. Масив вводиться з клавіатури c++
- Каким образом в c++ можно передать двумерный массив в фунцкию?
- Задача на массивы двумерные помогите доделать на C#,код прикрепляю и задачу
- помогите срочно надо Квадратные массивы тема: Двумерные массивы на языке C++
- .помогите пожалуйста двумерный массив на языке c++
- С Указатели двухмерный масив
- Как вывести масив 5 на 5 по спирали? Абсолютно любые значения, главное это вывод по порядку. Pascal, Java или C
- масивы. может ли реальное количество элеентов в масиве быть меньше, чем указано при описании? больше? почему?