Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Lawr443362777
0 / 0 / 0
Регистрация: 05.07.2017
Сообщений: 45
1

Заменить все отрицательные элементы матрицы на максимальный элемент

11.09.2017, 18:28. Просмотров 191. Ответов 3
Метки нет (Все метки)

Дана вещественная матрица h(i,j). Составить программу замены всех отрицательных элементов матрицы на элемент, имеющий максимальное значение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2017, 18:28
Ответы с готовыми решениями:

В массиве заменить все отрицательные элементы на минимальный элемент, а все положительные – на максимальный
В массиве из 10 целых чисел заменить все отрицательные элементы на минимальный...

Найти строку, содержащую наибольший элемент матрицы и заменить все отрицательные элементы этой строки числом 0
Здравтсвуйте! помогите пжл решить задачу. Найти строку, содержащую...

Дана матрица 3x3. Заменить все элементы выше главной диагонали на максимальный элемент матрицы
Дана матрица 3x3. Заменить все элементы выше главной диагонали на максимальный...

Все отрицательные элементы заданного массива L (11) разделить на максимальный элемент этого массива. Вывести максимальный элемент, начальный и преобра
Помогите составить программу на С++

Разделить все отрицательные элементы массива на его максимальный элемент
Помогите решить задачу?пожалуйста. В массиве из 10 чисел поделить все...

3
zss
Модератор
Эксперт С++
7186 / 6681 / 4230
Регистрация: 18.12.2011
Сообщений: 17,629
Завершенные тесты: 1
11.09.2017, 18:47 2
Ну, начните, хотя бы с
Заменить все отрицательные элементы матрицы на ноль
А потом добавьте поиск максимального значения.
0
anapshy
194 / 196 / 174
Регистрация: 14.11.2016
Сообщений: 765
Завершенные тесты: 3
11.09.2017, 19:09 3
Lawr443362777,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <cstdlib>
#include <ctime>
 
typedef std::vector<int>::size_type VSIZE;
typedef std::vector<int>::iterator  v_iterator;
 
const int MAX_RAND = 100; // максимальное случайное число
 
inline int GetRandomValue(int range) /// Получить случайное число
{
    return -range + std::rand() % (range * 2 + 1);
}
 
void PrintMatrixVec(const std::vector<std::vector<int>> &matrix)
{
    std::for_each(matrix.cbegin(), matrix.cend(), [](const std::vector<int> &item) {
        std::copy(item.cbegin(), item.cend(), std::ostream_iterator<int>(std::cout, " "));
        std::cout << std::endl;
    }); std::cout << std::endl;
}
 
int main()
{
    std::srand(unsigned(std::time(NULL)));
    VSIZE N(0U), M(0U);
    std::cout << "Enter the size of matrix: ";
    std::cin >> N >> M;
    std::vector<std::vector<int>> v; // матрица
    int max_value(-MAX_RAND);
    for (VSIZE i(0U); i < N; ++i)
    {
        std::vector<int> temp; // будущая строка элементов
        for (VSIZE j(0U); j < M; ++j)
            temp.push_back(GetRandomValue(MAX_RAND)); // заполняем вектор M случайными числами
        v_iterator temp_max_value = std::max_element(temp.begin(), temp.end()); // ищем максимальный элемент
        if (*temp_max_value > max_value) // если он больше глобального максимального в матрице
            max_value = *temp_max_value; // сохраняем
        v.push_back(temp); // вставляем вектор (строку) в конец
    }
    PrintMatrixVec(v); // выводим в консоль получившуюся матрицу
    std::for_each(v.begin(), v.end(), [&max_value](std::vector<int> &item) { // для каждой строки
        std::transform(item.begin(), item.end(), item.begin(), [&max_value](int &value) { // идем по элементам
            return value < 0 ? max_value : value; // если элемент < 0 - меняем на максимальный
        });
    });
    PrintMatrixVec(v); // выводим массив
}
0
Peoples
1347 / 836 / 749
Регистрация: 06.02.2016
Сообщений: 2,228
Записей в блоге: 17
Завершенные тесты: 4
11.09.2017, 21:11 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <iterator>
#include <algorithm>
#include <vector>
#include <random>
#include <ctime>
using namespace std;
int main() {
    
    static const int row=4;
    static const int col=4;
    
    int max_e {};
    
    mt19937 gen(time(nullptr));
    uniform_int_distribution<> dist(-10,20);
    
    auto ra=[&gen,&dist]()noexcept {    return dist(gen);  };
    
    vector<vector<int>>v(row);
 
    for_each(v.begin(),v.end(),[&ra](vector<int> &v1) {
        v1.resize(col);
        v1.shrink_to_fit();
        generate(v1.begin(),v1.end(),ra);
    });
 
    auto printM=[&v]()noexcept {
        
        for_each(v.begin(),v.end(),[](const vector<int>&v1) {
            
            copy(v1.cbegin(),v1.cend(),ostream_iterator<int>(cout," "));
            
            cout<<endl;
            
        });
        
    };
 
    printM();
 
 
 
    [&v,&max_e]() noexcept ->void {
        
        for_each(v.cbegin(),v.cend(),[&max_e](const vector<int>&v1) {
            
            int tmp {*max_element(v1.cbegin(),v1.cend())};
            
            max_e=max_e<tmp? tmp:max_e;
            
        });
 
    }();
 
 
    transform(v.begin(),v.end(),v.begin(),[&max_e](vector<int>&v1) {
        
        replace_if(v1.begin(),v1.end(),[&max_e](const int &x) { return x<0; },max_e);
        
        return v1;
        
    });
    
    cout<<endl;
    
    printM();
    
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2017, 21:11

Все отрицательные элементы матрицы заменить числом 1
Что делать не пойму, помогите пожалуйста. На самом начальном изучении мы, так...

Заменить все отрицательные элементы матрицы на ноль
Из произвольной матрицы (3х4) составить новую матрицу ,где все отрицательные...

Максимальный элемент матрицы заменить на нуль и вывести на печать угол матрицы, в котором расположен этот максимальный элемент
Помогите, пожалуйста, добить программу: -Максимальный элемент матрицы заменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru