Форум программистов, компьютерный форум CyberForum.ru

В матрице нужно найти квадрат 2x2 с максимальной суммой элементов и вывести эту сумму - C++

Восстановить пароль Регистрация
 
qqshcka
0 / 0 / 0
Регистрация: 15.07.2014
Сообщений: 1
15.07.2014, 14:59     В матрице нужно найти квадрат 2x2 с максимальной суммой элементов и вывести эту сумму #1
Добрый день!
У меня следующий вопрос. Дана матрица NxM в этой матрице нужно найти квадрат 2x2 с максимальной суммой элементов и вывести эту сумму. Заранее всем огромное спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 14:59     В матрице нужно найти квадрат 2x2 с максимальной суммой элементов и вывести эту сумму
Посмотрите здесь:

C++ В двумерном N*K массиве целых чисел поменять строку с максимальной суммой элементов со строкой с минимальной суммой элементов.
C++ В матрице найти строку с максимальной суммой элементов и поэлементно поменять ее с первой строкой
C++ Функции (в заданной матрице размерности 4 на 6 определяет номер строки с максимальной суммой элементов и размер этой суммы) Изменить.
C++ Найти строку с максимальной суммой элементов в двумерном массиве
C++ Матрицы. Найти строку с максимальной суммой модулей элементов
C++ Матрицы. Найти строку с максимальной суммой модулей элементов
C++ Работа с матрицей (в матрице найти первую по очереди строку с максимальной суммой элементов)
С клавиатуры вводится размер матрицы и сама матрица. Найти в матрице строку с максимальной суммой и отсортиров C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
15.07.2014, 15:32     В матрице нужно найти квадрат 2x2 с максимальной суммой элементов и вывести эту сумму #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
#include <ctime>
#include <iostream>
#include <algorithm>
#include <iomanip>
 
int main()
{
    constexpr int N = 5;
    int arr[N][N];
    srand(time(NULL));
    for(int i = 0; i < N; ++i) {
        for(int j = 0; j < N; ++j) {
            arr[i][j] = rand() % 11;
            std::cout << std::setw(3) << arr[i][j] << ' ';
        }
        std::cout << std::endl;
    }
 
    constexpr int M = (N - 1) * (N - 1);
    int temp[M];
 
     for(int i = 0; i < M; ++i)
        temp[i] = arr[i / (N - 1)][i % (N - 1)] +
                  arr[i / (N - 1) + 1][i % (N - 1)] +
                  arr[i / (N - 1)][i % (N - 1) + 1] +
                  arr[i / (N - 1) + 1][i % (N - 1) + 1];
     std::cout << "temp: ";
     for(int i = 0; i < M; ++i)
        std::cout << temp[i] << ' ';
 
    int* pt = std::max_element(temp, temp + M);
    std::cout << std::endl;
    std::cout << "temp[" <<pt - temp << "] = " << *pt << std::endl;
    std::cout << "i = " << (pt - temp) / (N - 1) << " j = " << (pt - temp) % (N - 1);
    return 0;
}
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
15.07.2014, 15:42     В матрице нужно найти квадрат 2x2 с максимальной суммой элементов и вывести эту сумму #3
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
#include <ctime>
#include <iostream>
#include <algorithm>
#include <iomanip>
 
int main()
{
    const int N = 5;
    int arr[N][N];
    srand(time(NULL));
    for(int i = 0; i < N; ++i) {
        for(int j = 0; j < N; ++j) {
            arr[i][j] = rand() % 11;
            std::cout << std::setw(3) << arr[i][j] << ' ';
        }
        std::cout << std::endl;
    }
    int max = 0, sum, iindex, jindex;
    for(int i = 0; i < N - 1; ++i) {
        for(int j = 0; j < N - 1; ++j)
        {
            sum = 0;
            sum += arr[i][j] + arr[i+1][j] + arr[i][j+1] + arr[i+1][j+1];
            if(sum > max)
            {
                max = sum;
                iindex = i;
                jindex = j;
 
            }
        }
    }
    std::cout << "\nKvadrat 2x2: " << arr[iindex][jindex] << "   " << arr[iindex][jindex + 1]
    << std::endl << std::setw(14)<<   arr[iindex+ 1][jindex] << "   " << arr[iindex + 1][jindex + 1];
    std::cout << "\n Summa= " << max;
}
Yandex
Объявления
15.07.2014, 15:42     В матрице нужно найти квадрат 2x2 с максимальной суммой элементов и вывести эту сумму
Ответ Создать тему
Опции темы

Текущее время: 01:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru