Дан двумерный массив целых чисел a из n строк и m столбцов. Требуется в каждой строке заменить знак максимального по модулю элемента на противоположный. Если таких элементов несколько, требуется изменить все.
Формат входных данных
Первая строка входного файла содержит два натуральных числа n и m (n,m≤100) — количество строк и столбцов массива a соответственно. Следующие n строк содержат по m целых чисел aij (|aij|≤1000) — элементы массива a.
Формат выходных данных
Требуется вывести n строк по m чисел, разделённых пробелом — изменённый массив.
Примеры
входные данные выходные данные
3 3
-1 -2 3
4 5 -6
7 -8 9
-1 -2 -3
4 5 6
7 -8 -9
Другие языки программирования и технологии
помогите пожалуйста очень срочно надо ((( на языке C++
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
using namespace std;
pair<size_t, size_t> load(const string& path, int* box, const size_t lim) {
ifstream file(path);
if (file.is_open()) {
size_t n, m;
file >> n >> m;
if (n > lim || m > lim) exit(0);
for (size_t i = 0; i < n; ++i) {
const auto a = i * lim;
const auto b = m + i * lim;
for (auto j = a; j < b; ++j) file >> box[j];
}
file.close();
return { n, m };
}
return { 0, 0 };
}
int absmax(int* row, const size_t n) {
auto maxe = abs(row[0]);
for (size_t i = 1; i < n; ++i) {
const auto tmp = abs(row[i]);
if (maxe < tmp) maxe = tmp;
}
return maxe;
}
void replace(int* row, const size_t n) {
const auto am = absmax(row, n);
for (size_t i = 0; i < n; ++i) if (abs(row[i]) == am) row[i] = -row[i];
}
void print(const int* row, const size_t n, const streamsize w = 6) {
for (size_t i = 0; i < n; ++i) cout << setw(w) << row[i];
cout.put('\n');
}
int main() {
const size_t lim = 100;
int matrix[lim][lim];
auto[rows, cols] = load("matrix.txt", &matrix[0][0], lim);
for (size_t row = 0; row < rows; ++row) print(matrix[row], cols);
cout.put('\n');
for (size_t row = 0; row < rows; ++row) replace(matrix[row], cols);
for (size_t row = 0; row < rows; ++row) print(matrix[row], cols);
system("pause");
}
#include <iomanip>
#include <string>
#include <fstream>
using namespace std;
pair<size_t, size_t> load(const string& path, int* box, const size_t lim) {
ifstream file(path);
if (file.is_open()) {
size_t n, m;
file >> n >> m;
if (n > lim || m > lim) exit(0);
for (size_t i = 0; i < n; ++i) {
const auto a = i * lim;
const auto b = m + i * lim;
for (auto j = a; j < b; ++j) file >> box[j];
}
file.close();
return { n, m };
}
return { 0, 0 };
}
int absmax(int* row, const size_t n) {
auto maxe = abs(row[0]);
for (size_t i = 1; i < n; ++i) {
const auto tmp = abs(row[i]);
if (maxe < tmp) maxe = tmp;
}
return maxe;
}
void replace(int* row, const size_t n) {
const auto am = absmax(row, n);
for (size_t i = 0; i < n; ++i) if (abs(row[i]) == am) row[i] = -row[i];
}
void print(const int* row, const size_t n, const streamsize w = 6) {
for (size_t i = 0; i < n; ++i) cout << setw(w) << row[i];
cout.put('\n');
}
int main() {
const size_t lim = 100;
int matrix[lim][lim];
auto[rows, cols] = load("matrix.txt", &matrix[0][0], lim);
for (size_t row = 0; row < rows; ++row) print(matrix[row], cols);
cout.put('\n');
for (size_t row = 0; row < rows; ++row) replace(matrix[row], cols);
for (size_t row = 0; row < rows; ++row) print(matrix[row], cols);
system("pause");
}
Похожие вопросы
- Помогите, пожалуйста! ОЧЕНЬ срочно! Заблокирован компьютер!
- помогите, пожалуйста, очень срочно нужно как отсортировать число 1079011205 методом пузырька ???
- Помогите пожалуйста, очень срочно нужно решить задачу по информатике. Сама не понимаю, есть ли вообще решение.
- Задача в паскале. помогите пожалуйста... очень срочно нужно!
- Помогите пожалуйста разобрать задачу по програмированию на C++.
- Литература C++. Посоветуйте пожалуйста хорошую литературу для изучения языка C++. Или может видео курсы.
- ОЧЕНЬ СРОЧНО НУЖНА ПОМОЩЬ В C++ БУДУ ОЧЕНЬ БЛАГОДАРЕН !!!
- Помогите пожалуйста оптимизировать решение задачи (Зайчик) на C++
- «Помогите пожалуйста! Очень надо!! ! Нужно написать на языке Си (именно на СИ) . Заранее СПАСИБО!!!»
- Помогите пожалуйста найти ошибку в задаче (Язык программирования Си)