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

ПОМОГИТЕ ПОЖАЛУЙСТА СРОЧНО НАДО А ЯЗЫКЕ С++

Дан двумерный массив целых чисел 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
#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 = 1; 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");
}
Тима Шонин
Тима Шонин
72 507
Лучший ответ
ДА КАНЕШНА! С ЧЕМ ИМЕННО ПОМОЧЬ? ЧТО НЕПОНЯТНО? В ЧЕМ ЗАТРУДНЕНИЯ?
НИЧЕГО ЧТО ТАК МЕЛКО ПИШУ?
Калимулла Баймухамбетов все не понятно, нужен код кр. я запуталсяяяяя!!!
Калимулла Баймухамбетов помоги по братски пж
GuiCompactSettingsWindow::GuiCompactSettingsWindow(QWidget *parent, GuiBase::SplitType openmode)
: QDialog(parent),
session_list_model(NULL)
{
setModal(true);
openMode = openmode;

Config* cfg;

QPushButton *details = new QPushButton(tr("Details"));
connect(details, SIGNAL(clicked()), this, SLOT(on_details_clicked()));

QDialogButtonBox *btn_box = new QDialogButtonBox(QDialogButtonBox::Cancel);

btn_box->addButton(tr("Open"), QDialogButtonBox::AcceptRole);
connect(btn_box, SIGNAL(accepted()), this, SLOT(on_open_clicked()));
connect(btn_box, SIGNAL(rejected()), this, SLOT(on_close_clicked()));
connect(this, SIGNAL(rejected()), this, SLOT(on_close_clicked()));

cb_hostname = new QComboBox(this);
cb_hostname->setMinimumWidth(500);

QStringList completions;
for(auto it = qutty_mru_sesslist.mru_list.begin();
it != qutty_mru_sesslist.mru_list.end();
++it) {
if (it->second[0] == '\0')
continue;
// in 'hostname|sessname' format
completions << it->second + "|" + it->first;
}
hostname_completer = new QtCompleterWithAdvancedCompletion(cb_hostname);
hostname_completer->setModel(completions);
hostname_completer->popup()->setItemDelegate(new QtHostNameCompleterItemDelegate);
connect(hostname_completer, SIGNAL(activated(QString)), this, SLOT(on_hostname_completion_activated(QString)));
cb_hostname->setItemDelegate(new QtHostNameCompleterItemDelegate);
connect(cb_hostname, SIGNAL(activated(QString)), SLOT(on_cb_hostname_activated(QString)));

cb_session_list = new QtComboBoxWithTreeView(this);
cb_session_list->setItemDelegate(new QtSessionTreeItemDelegate);
session_list_model = new QtSessionTreeModel(this, qutty_config.config_list);
cb_session_list->setModel(session_list_model);
cb_session_list->setMaxVisibleItems(25);

cb_connection_type = new QComboBox(this);
cb_connection_type->setMaximumWidth(100);
cb_connection_type->addItem("Telnet");
cb_connection_type->addItem("SSH");

if (qutty_mru_sesslist.mru_list.size() > 0 &&
qutty_config.config_list.find(qutty_mru_sesslist.mru_list[0].first) != qutty_config.config_list.end() &&
!completions.isEmpty()) {
QString sessname = qutty_mru_sesslist.mru_list[0].first;
on_hostname_completion_activated(completions.at(0));
setConnectionType(qutty_config.config_list[sessname].protocol);
} else if(qutty_config.config_list.find(QUTTY_DEFAULT_CONFIG_SETTINGS) != qutty_config.config_list.end())
{
cfg = &qutty_config.config_list[QUTTY_DEFAULT_CONFIG_SETTINGS];
cb_session_list->setCurrentIndex(cb_session_list->findText(QUTTY_DEFAULT_CONFIG_SETTINGS));
hostname_completer->setText(QString(cfg->host));
setConnectionType(cfg->protocol);
}

connect(cb_session_list, SIGNAL(activated(int)), this, SLOT(on_cb_session_list_activated(int)));

QGridLayout *layout = new QGridLayout(this);

layout->addWidget(new QLabel("Hostname : ", this));
layout->addWidget(cb_hostname);

layout->addWidget(new QLabel("Session profiles : ", this));
layout->addWidget(cb_session_list);

layout->addWidget(new QLabel("Connection type : ", this));
layout->addWidget(cb_connection_type);

QHBoxLayout *hlayout = new QHBoxLayout();
hlayout->addWidget(details);
hlayout->addWidget(btn_box, 1);

layout->addLayout(hlayout, 10, 0, 1, 1);

setLayout(layout);

// select the hostname text
cb_hostname->lineEdit()->selectAll();
cb_hostname->lineEdit()->setFocus();
}

void GuiCompactSettingsWindow::on_close_clicked()
{
emit signal_on_close();
this->close();
this->deleteLater();
}
Игорь Попов
Игорь Попов
30 477