1 / 1 / 2
Регистрация: 04.10.2017
Сообщений: 29
1

После строк матрицы с максимальной суммой элементов вставить копию строки с минимальной суммой элементов

13.02.2018, 20:42. Показов 834. Ответов 4
Метки нет (Все метки)

Ввести целочисленный двумерный массив , состоящий из строк произвольной длины . После строк с максимальной суммой элементов вставить копию строки с минимальной суммой элементов . Реализовать функцию вычисления суммы строки .
Помогите очень нужна помощь!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2018, 20:42
Ответы с готовыми решениями:

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

В матрице найти номер строки с максимальной суммой элементов и номер столбца с минимальной суммой элементов
Вывести на консоль номер строки с максимальной суммой элементов и номер столбца с минимальной...

В двумерном N*K массиве целых чисел поменять строку с максимальной суммой элементов со строкой с минимальной суммой элементов.
Массив заполнять случайными числами, кроме случаев, когда это нецелесообразно (прогрессия,...

Дан двумерный массив. Найти строку с минимальной суммой элементов, столбец с максимальной суммой элементов
а)Строку с минимальной суммой элементов б)Столбец с максимальной суммой элементов Дополнительный...

4
1749 / 1341 / 1407
Регистрация: 28.10.2016
Сообщений: 4,266
13.02.2018, 21:51 2
Вроде того
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
#include <iostream>
#include <vector>
#include <random>
#include <iterator>
 
int Sum(std::vector<int> a) {
    int sum = 0;
    for (int i = 0; i < a.size(); i++)
        sum += a[i];
    return sum;
}
 
int main()
{
    std::default_random_engine gen{ std::random_device()() };
    std::uniform_int_distribution<> dist(-10, 10);
    int n, m; std::cout << "N, M = "; std::cin >> n >> m;
    std::size_t min = 0, max = 0;
    std::vector<int> r_min(m);
    std::vector<std::vector<int>> a(n, std::vector<int>(m));
    for (auto& row : a) {
        std::generate(row.begin(), row.end(), [&dist, &gen] {return dist(gen); });
        std::copy(row.begin(), row.end(), std::ostream_iterator<int>(std::cout, "\t"));
        std::cout << "\n";
    }
    for (int i = 0; i < n; i++) {
        int s1 = Sum(a[i]);
        if (s1 > Sum(a[max])) max = i;
        if (s1 < Sum(a[min])) min = i;
    }
    a.insert(a.begin() + max + 1, a[min]);
    std::cout << "\n";
    for (auto& row : a) {
        std::copy(row.begin(), row.end(), std::ostream_iterator<int>(std::cout, "\t"));
        std::cout << "\n";
    }
    system("pause");
    return 0;
}
0
1 / 1 / 2
Регистрация: 04.10.2017
Сообщений: 29
15.02.2018, 18:11  [ТС] 3
А можна упростить код , очень сложный код , я его не смогу обьяснить
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
15.02.2018, 18:40 4
Цитата Сообщение от DeviL_Hell99 Посмотреть сообщение
А можна упростить код
Можно

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <vector>
#include <algorithm>
 
int main()
{
    std::vector<std::vector<int>> v = {{0, 1, 2, 3}, {4, 5, 6, 7}};
    auto sum = [](std::vector<int> &row) { return std::accumulate(row1.begin(), row1.end(), 0); };
    auto comparator = [](std::vector<int> &row1, std::vector<int> &row2) { return sum(row1) < sum(row2); };
    auto pair = std::minmax_element(v.begin(), v.end(), comparator);
    v.insert(pair.second + 1, *pair.first);
}
0
1 / 1 / 2
Регистрация: 04.10.2017
Сообщений: 29
15.02.2018, 21:15  [ТС] 5
Ввести целочисленный двумерный массив , состоящий из строк произвольной длины . После строк с максимальной суммой элементов вставить копию строки с минимальной суммой элементов . Реализовать функцию вычисления суммы строки .
Помогите упростить код без вектора !



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
int Sum(std::vector<int> a) {
    int sum = 0;
    for (int i = 0; i < a.size(); i++)
        sum += a[i];
    return sum;
}
 
int main()
{
    std::default_random_engine gen{ std::random_device()() };
    std::uniform_int_distribution<> dist(-10, 10);
    int n, m; std::cout << "N, M = "; std::cin >> n >> m;
    std::size_t min = 0, max = 0;
    std::vector<int> r_min(m);
    std::vector<std::vector<int>> a(n, std::vector<int>(m));
    for (auto& row : a) {
        std::generate(row.begin(), row.end(), [&dist, &gen] {return dist(gen); });
        std::copy(row.begin(), row.end(), std::ostream_iterator<int>(std::cout, "\t"));
        std::cout << "\n";
    }
    for (int i = 0; i < n; i++) {
        int s1 = Sum(a[i]);
        if (s1 > Sum(a[max])) max = i;
        if (s1 < Sum(a[min])) min = i;
    }
    a.insert(a.begin() + max + 1, a[min]);
    std::cout << "\n";
    for (auto& row : a) {
        std::copy(row.begin(), row.end(), std::ostream_iterator<int>(std::cout, "\t"));
        std::cout << "\n";
    }
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2018, 21:15
Помогаю со студенческими работами здесь

Найти строку с максимальной суммой элементов и минимальной суммой элементов
создать матрицу 5х5 найти строку с максимальной суммой елементов и минимальной сумой елементов и...

Массив: В произвольно заданной матрице размера 4*6 определить строку с максимальной суммой элементов и столбец с минимальной суммой.
В произвольно заданной матрице размера 4*6 определить строку с максимальной суммой элементов и...

Найти строку с минимальной и максимальной суммой элементов матрицы Т(8, 7)
Помогите пожалуйста решить такую задачу по VB 6.0 а то в универе толком ничего не объяснили, а...

Найти строку с минимальной и максимальной суммой элементов матрицы Т(8, 7)
Помогите решить такую задачу, совсем не пойму как сделать:cry: Найти строку с минимальной и...


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

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

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