Надо максимальные элементы массива заменить на нули при выводе, я пытался сделать чёто типа if ( i == max )
i = 0;
перед выводом в cout... но этот бред не работает
► Код:
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<Windows.h>
#include<string.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
const int maxn = 10; // Максимальное кол-во строк
const int maxm = 10; // Максимальное количество столбцов
int n; // Количество строк
int m; // Количество столбцов
int i, j; // Параметр цикла
int max; // Максимальный элемент строки
int sum_row;
int arr[maxn][maxm];
cout << "Введите количество строк\t";
cin >> n;
cout << "Введите количество столбцов\t";
cin >> m;
sum_row = 0;
// Введение элементов массива:
for (i = 0; i <= n - 1; i++)
{
for (j = 0; j <= m - 1; j++)
{
cout << "Введите элемент массива arr " << i + 1 << ", " << j + 1 << " =\t";
cin >> arr[i][j];
sum_row += arr[i][j];
}
}
cout << endl;
// Поиск суммы каждой строки
for (i = 0; i <= n - 1; i++)
{
sum_row = 0;
for (j = 0; j <= m - 1; j++)
sum_row += arr[i][j];
cout << "Сумма " << i + 1 << " -й строки = " << sum_row << endl;
}
cout << endl;
// Поиск максимального элемента каждой строки
for (i = 0; i <= n - 1; i++)
{
max = arr[i][0];
for (j = 0; j <= m - 1; j++)
{
if (max <= arr[i][j])
max = arr[i][j];
}
cout << "Максимальное значение " << i + 1 << " -й строки = " << max << endl;
cout << endl;
}
for (i = 0; i <= n - 1; i++) // Вывод элементов массива
{
for (j = 0; j <= m - 1; j++)
cout << arr[i][j] << " ";
cout << endl;
}
return 0;
}
C/C++
С++ | Как заменить макс. элементы (могут быть введены любые) массива на нули и вывести изменённый массив уже с нолями?!
Дана матрица.
Надо заменить максимальные элементы каждой строки на ноль или максимальные элементы все матрицы?
То есть, если будет дана такая матрица:
1 2 3
4 8 4
8 8 2
то какой результат должен быть?
1 2 0
4 0 4
0 0 2
ИЛИ
1 2 3
4 0 4
0 0 2
?
Надо заменить максимальные элементы каждой строки на ноль или максимальные элементы все матрицы?
То есть, если будет дана такая матрица:
1 2 3
4 8 4
8 8 2
то какой результат должен быть?
1 2 0
4 0 4
0 0 2
ИЛИ
1 2 3
4 0 4
0 0 2
?
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
size_t length(const char* msg, const size_t max_length) {
auto value = 0U;
while (!value || value > max_length) {
cout << msg;
cin >> value;
}
return value;
}
void show_line(const int* line, const size_t len) {
for (auto i = 0U; i < len; ++i) cout << setw(3) << line[i];
puts("");
}
int main() {
uniform_int_distribution<> uid(1, 9);
mt19937 gen{ random_device()() };
auto rand = [&] { return uid(gen); };
const auto max_rows = 10U;
const auto max_columns = 10U;
int matrix[max_rows][max_columns]{};
system("chcp 1251 > nul");
auto rows = length("Количество строк: ", max_rows);
auto columns = length("Количество столбцов: ", max_columns);
for (auto i = 0U; i < rows; ++i) {
generate(matrix[i], matrix[i] + columns, rand);
show_line(matrix[i], columns);
}
puts("");
for (auto i = 0U; i < rows; ++i) {
auto max = *max_element(matrix[i], matrix[i] + columns);
replace(matrix[i], matrix[i] + columns, max, 0);
}
for (auto i = 0U; i < rows; ++i) {
show_line(matrix[i], columns);
}
system("pause > nul");
}
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
size_t length(const char* msg, const size_t max_length) {
auto value = 0U;
while (!value || value > max_length) {
cout << msg;
cin >> value;
}
return value;
}
void show_line(const int* line, const size_t len) {
for (auto i = 0U; i < len; ++i) cout << setw(3) << line[i];
puts("");
}
int main() {
uniform_int_distribution<> uid(1, 9);
mt19937 gen{ random_device()() };
auto rand = [&] { return uid(gen); };
const auto max_rows = 10U;
const auto max_columns = 10U;
int matrix[max_rows][max_columns]{};
system("chcp 1251 > nul");
auto rows = length("Количество строк: ", max_rows);
auto columns = length("Количество столбцов: ", max_columns);
for (auto i = 0U; i < rows; ++i) {
generate(matrix[i], matrix[i] + columns, rand);
show_line(matrix[i], columns);
}
puts("");
for (auto i = 0U; i < rows; ++i) {
auto max = *max_element(matrix[i], matrix[i] + columns);
replace(matrix[i], matrix[i] + columns, max, 0);
}
for (auto i = 0U; i < rows; ++i) {
show_line(matrix[i], columns);
}
system("pause > nul");
}
Похожие вопросы
- Ввести двумерный массив A(n x m)
- Как ввести строчный массив через scanf_s в языке Си
- 5) Найти среднее значение элементов построчно и по столбцам массива n*n случайных чисел. с++ пж помагите
- Программирование на СИ "Написать программу подсчёта суммы нечётных элементов из 20 введенных"
- Заменить нулями элементы массива, которые расположены между первым минимальным и последним максимальным элементами масси
- Написал функцию, которая добавляет элемент в конец массива, как можно улучшить? Нули не учитываются.
- Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел
- C++ добавить элемент, который введет пользователь в одномерный динамический массив
- Дан массив из N элементов (N < 1000), причем N - четное. Вставить в середину массива сумму всех элементов.
- Как работать с элементами динамического массива из функции?
1 2 0
4 0 4
0 0 2