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

Массив: Для каждого квадрата размером MxM в этой таблице вычислить сумму стоящих в нём чисел. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дана строка, слова в которой разделены пробелами. Оставьте в ней только те слова, которые начинаются на ту же букву, что и первое слово. http://www.cyberforum.ru/cpp-beginners/thread833563.html
5.17 Дана строка, слова в которой разделены пробелами. Оставьте в ней только те слова, которые начинаются на ту же букву, что и первое слово. Например: S = «С началом второй мировой войны...
C++ Преобразуйте матрицу путем удаления из нее строки, сумма элементов которой является максимальной из сумм элементов всех строк Дана матрица размерности n x m, все элементы которой различны. Преобразуйте матрицу путем удаления из нее строки, сумма элементов которой является максимальной из сумм элементов всех строк.... http://www.cyberforum.ru/cpp-beginners/thread833562.html
C++ Линейные массивы (Уменьшите все отрицательные элементы вектора на единицу)
Уменьшите все отрицательные элементы вектора на единицу. Например: (7 -5 -15 3 1 -2 4 -7 9 5) (7 -6 -16 3 1 -3 4 -8 9 5)
C++ Формат командной строки
Нужно выполнить задание. Есть X потоков в которых лежит по объекту, эти объекты я в случайном порядке сую в контейнер размером Y. При заполнении контейнера, начинаю удалять самые старые объекты и...
C++ по адресу получить значение http://www.cyberforum.ru/cpp-beginners/thread833512.html
Господа создаю программу которая задаёт значение и показывает адрес ячейке , запускаю её и в другой программе в исходник пишу этот адрес , но значение показывает совсем другое. программа которая...
C++ Функция ввода двумерного массива Ребят, помогите! Надо написать функцию чтобы с помощью нее мы вводили двумерный массив! Не знаю какие параметры задать и что внутри написать! Функция внизу закомментирована. #include "stdafx.h"... подробнее

Показать сообщение отдельно
stima
473 / 322 / 30
Регистрация: 22.03.2011
Сообщений: 1,046
Завершенные тесты: 2
10.04.2013, 16:41
Кликните здесь для просмотра всего текста

Цитата Сообщение от Tulosba Посмотреть сообщение
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
#include <iostream>
 
int main() {
   
   using std::cout;
   using std::cin;
   using std::endl;
   
   int N, M;
   cin >> N >> M;
   
   srand(time(0));
   
   int** matrix = new int*[N];
   for( int i=0; i<N; ++i )
   {
      matrix[i] = new int[N];
      for( int j=0; j<N; ++j )
      {
         cout << (matrix[i][j] = rand() % 10) << " ";
      }
      cout << endl;
   }
   
   for( int i=0; i<=N-M; ++i )
      for( int j=0; j<=N-M; ++j )
      {
         cout << "Square top-left corner : (" << i << ":" << j << ")";
         
         int sum = 0;
         for( int k=i; k<i+M; ++k )
            for( int m=j; m<j+M; ++m )
            {
               sum += matrix[k][m];
            }
         
         cout << " Sum = " << sum << endl;
      }
   
   return 0;
}
Малость в кучу и без освобождения памяти.

Добавлено через 16 минут
Hamidam, правда сделано "в лоб". Если нужно вычислять сумму в новом квадрате на основании предыдущего, то придется переделать


Решение не правильно. Требуемая сложность О(2), а у Вас О(4) и куча ошибок.
Но в свою очередь условие не корректно. Для составление правильной итерации нужно точно знать как двигаться по матрице со сдвигом на 1 (т.е. для каждого квадрата) или со сдвигом на размер квадрата (то что указано в "указании"). И что вообще значит это указание? Решить так и не как иначе?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru