Другие языки программирования и технологии

С++. Написание кода к задаче

Из каждого элемента матрицы A(3,3) вычесть сумму ее нечетных отрицательных элементов.

Нужно сделать на языке С++. Может кто написать код?
#include <iostream>
#include <iomanip>

using namespace std;

int f(int* beg, int* end);
void g(int* beg, int* end, int sum);
void h(int* beg, int* end, int cols);

int main()
{
const int rows = 3;
const int cols = 3;

int matrix[rows][cols] = { { 6, -4, 3 }, { -5, 7, 2 }, { -1, -3, -8 } };
int* beg = &matrix[0][0];
int* end = &matrix[rows - 1][cols];

h(beg, end, cols);

int sum = f(beg, end);
cout << "\tSum = " << sum << "\n\n";

g(beg, end, sum);
h(beg, end, cols);

cin.get();
}

int f(int* beg, int* end)
{
int sum = 0;

while (beg != end)
{
if (*beg < 0 && *beg & 1)
{
sum += *beg;
}

++beg;
}

return sum;
}

void g(int* beg, int* end, int sum)
{
while (beg != end)
{
*beg -= sum;
++beg;
}
}

void h(int* beg, int* end, int cols)
{
int n = 1;

while (beg != end)
{
cout << setw(6) << *beg;

if (0 == n % cols) cout << '\n';

++beg;
++n;
}

cout << '\n';
}
Павел Кунин
Павел Кунин
62 226
Лучший ответ
const int m=3,n=3;
int a[m][n];
int sum = 0;
for(int i = 0 ; i != m ; ++i)
for(int j = 0 ; j !=n ; ++j ) (a[i][j] < 0 && a[i][j] % (-i) !=0) ? sum += a[i][j] : sum += 0;

for(int i = 0 ; i != m ; ++i)
for(int j = 0 ; j !=n ; ++j ) a[i][j] -= sum;
Попробуй посмотреть тут

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