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

найти любой прямоугольник этой матрицы с наибольшей суммой - C++

Восстановить пароль Регистрация
 
ss-20
 Аватар для ss-20
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 25
12.12.2012, 19:38     найти любой прямоугольник этой матрицы с наибольшей суммой #1
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
71
72
     
/*Задача: заполнить матрицу случайными числами, в том числе и отрицательными
найти любой прямоугольник этой матрицы с наибольшей суммой.
зы.не могу понять ошибку свою*/
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <conio.h>
 
using namespace std;
 
 int main()
 {
 srand (time(NULL));
 
 const int N=100;
 const int M=100;
 
 int a[N][M];
 int n,m,x1,x2,y1,y2,sum,ssum; //описываем переменные
 cout<<"n=?  "; cin >> n; 
 cout<<"m=?  "; cin >> m;
 
   for ( int i=0;  i < n; i++)
       for( int j=0; j < m; j++)
  
   a[i][j]=rand()%100-50; //заполнили матрицу случайными числами
 
  for(int i=0; i<n; i++)
  {
          for(int j=0; j<m; j++)
 
          cout <<  a[i][j]<<" "; //выводим матрицу
          cout << endl;
  }
     ssum=0;
      sum=a[0][0];
        for (int i=0; i < n; i++)
        
         for (int j=0; j < m; j++) //выбираем первый элемент
         
           for (int k=i; k < n; k++)
          
            for (int l=j; l < m; l++) //выбираем второй элемент
      { 
             for(int h=i; h <= k; h++)
             
               for(int g=j; g <= l; g++) //считаем сумму
           
              sum+=a[h][g];
            
             if  (sum > ssum)
           {
               sum=sum;
               x1=i;
               x2=k;
               y1=j;
               y2=l;
           }
      }
 
        cout << ssum <<endl;
         for( int i=x1; i<=x2; i++)
          for( int j=y1; j<=y2; j++)
    
          cout << a[i][j];
          cout << endl;
 
      
      getch();
      return 0;    
}
Добавлено через 28 секунд
как сделать,чтобы работало?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2012, 19:38     найти любой прямоугольник этой матрицы с наибольшей суммой
Посмотрите здесь:

C++ Дана матрица размера МхН.Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.
Найти прямоугольник, наибольшей площади, заполненный единицами C++
C++ Матрица. Найти номер ее ряда с наибольшей суммой элементов и вывести данный ее номер, а также значение наибольшей суммы
C++ В матрице размерностью MxN найти номер строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы
C++ Найти строку прямоугольной матрицы с наибольшей и наименьшей суммой элементов.
Найти строки матрицы с наибольшей и наименьшей суммой элементов C++
Удаление столбца с наибольшей по модулю суммой элементов из матрицы. Объясните принцип работы C++
Найти число с наибольшей суммой делителей C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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