0 / 0 / 0
Регистрация: 05.07.2017
Сообщений: 45
1

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

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

Дана вещественная матрица h(i,j). Составить программу замены всех отрицательных элементов матрицы на элемент, имеющий максимальное значение.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2017, 18:28
Ответы с готовыми решениями:

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

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

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

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

3
Модератор
Эксперт С++
12114 / 9783 / 5912
Регистрация: 18.12.2011
Сообщений: 26,253
11.09.2017, 18:47 2
Ну, начните, хотя бы с
Заменить все отрицательные элементы матрицы на ноль
А потом добавьте поиск максимального значения.
0
279 / 251 / 209
Регистрация: 14.11.2016
Сообщений: 948
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
Эксперт С++
1620 / 950 / 782
Регистрация: 06.02.2016
Сообщений: 2,449
Записей в блоге: 30
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2017, 21:11
Помогаю со студенческими работами здесь

Заменить все отрицательные элементы матрицы на максимальный элемент
помогите написать программы, я знаю, что они элементарные, просто я с Паскалем не знаком почти....

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

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

Заменить все отрицательные элементы двумерного массива на максимальный элемент
Написать программу, которая заменяет все отрицательные элементы двумерного массива на максимальный...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru