Другие языки программирования и технологии
Помогите решить программу на С++
Дан двумерный массив целых чисел. Модифицировать его элементы по следующему правилу: ко всем четным элементам массива прибавить последний элемент соответствующей строки, к остальным - первый элемент соответствующего столбца.
Если под четными элементами массива понимаются кратные двум, то можно решить так (замечание: строки массива обрабатываются от последней к первой, чтобы первая изменялась последней, иначе к элементам столбцов будут прибавляться уже измененные значения первой строки) :
#include <iostream>
#include <iomanip>
using namespace std;
bool even(int number) {
return number % 2 == 0;
}
void modify_int_array(int *array_data, const int n, const int m) {
int (*array)[m] = (int (*)[m]) array_data;
int row, column;
for (row = n - 1; row >= 0; --row) {
for (column = 0; column < m; ++column) {
array[row][column] += even(array[row][column]) ? array[row][m - 1] : array[0][column];
}
}
}
void input_int_array(int *array_data, const int n, const int m) {
int (*array)[m] = (int (*)[m]) array_data;
int row, column;
for (row = 0; row < n; ++row) {
for (column = 0; column < m; ++column) {
cout << "array[" << row << "][" << column << "] = " << flush;
cin >> array[row][column];
}
}
}
void print_int_array(int *array_data, const int n, const int m) {
int (*array)[m] = (int (*)[m]) array_data;
int row, column;
cout << "[" << n << "][" << m << "] :" << endl;
for (row = 0; row < n; ++row) {
for (column = 0; column < m; ++column) {
cout << setw(5) << array[row][column] << " ";
}
cout << endl;
}
}
int main() {
int n, m;
cout << "array rows: " << flush;
cin >> n;
cout << "array columns: " << flush;
cin >> m;
int *array = new int [n * m];
input_int_array(array, n, m);
cout << "array";
print_int_array(array, n, m);
modify_int_array(array, n, m);
cout << "modified array";
print_int_array(array, n, m);
delete[] array;
return 0;
}
#include <iostream>
#include <iomanip>
using namespace std;
bool even(int number) {
return number % 2 == 0;
}
void modify_int_array(int *array_data, const int n, const int m) {
int (*array)[m] = (int (*)[m]) array_data;
int row, column;
for (row = n - 1; row >= 0; --row) {
for (column = 0; column < m; ++column) {
array[row][column] += even(array[row][column]) ? array[row][m - 1] : array[0][column];
}
}
}
void input_int_array(int *array_data, const int n, const int m) {
int (*array)[m] = (int (*)[m]) array_data;
int row, column;
for (row = 0; row < n; ++row) {
for (column = 0; column < m; ++column) {
cout << "array[" << row << "][" << column << "] = " << flush;
cin >> array[row][column];
}
}
}
void print_int_array(int *array_data, const int n, const int m) {
int (*array)[m] = (int (*)[m]) array_data;
int row, column;
cout << "[" << n << "][" << m << "] :" << endl;
for (row = 0; row < n; ++row) {
for (column = 0; column < m; ++column) {
cout << setw(5) << array[row][column] << " ";
}
cout << endl;
}
}
int main() {
int n, m;
cout << "array rows: " << flush;
cin >> n;
cout << "array columns: " << flush;
cin >> m;
int *array = new int [n * m];
input_int_array(array, n, m);
cout << "array";
print_int_array(array, n, m);
modify_int_array(array, n, m);
cout << "modified array";
print_int_array(array, n, m);
delete[] array;
return 0;
}

Похожие вопросы
- Помогите решить программу в паскале)
- Люди помогите решить программу,очень срочно надо!
- ПОЖАЛУЙСТА ПОМОГИТЕ РЕШИТЬ ПРОГРАММУ НА ПАСКАЛЕ!
- Помогите решить программу (паскаль)
- помогите решить программу на паскале
- Помогите написать программу со switch в СИ
- Пожалуйста, будтье так добры, помочь решить задчаку в Паскале: Составьте программу, печатающую последнее слово в ...
- Помогите написать программу в Бейсике или решить хотя б решить задачу.
- Помогите пожалуйста! Завтра экзамен не буду допущен без программы (( помогите решить ..
- Помогите написать программу на С. Тема Составление программ с использованием массивов