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

Нахождение в строке/столбце/диагонали матрицы последовательностей одинаковых чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Привязка библиотеки http://www.cyberforum.ru/cpp-beginners/thread911107.html
Поделитесь кодом привязки библиотеки к айпи. Добавлено через 14 часов 38 минут ап..
C++ Массив А и Б задачка Массив А из N целых чисел (N не превышает 10 и вводится в процессе работы программы) заполняется вводом с клавиатуры. Сформировать новый массив В, заполненный элементами массива А в обратном порядке.... http://www.cyberforum.ru/cpp-beginners/thread911105.html
исправить ошибку C++
задание такое: Даны четыре вещественные матрицы произвольной размерности (размерности вводятся пользователем). Вычислить все возможные произведения матриц. Упорядочить по возрастанию элементы главной...
C++ тип typedef
можете кинуть какую нибудь программу с преобразованием типа typedef (С++), очень срочно нужно..
C++ Invalid conversion from 'char' to 'const char*' http://www.cyberforum.ru/cpp-beginners/thread911092.html
доброго всем время суток. при компиляции у меня выдаёт ошибку invalid conversion from 'char' to 'const char*' знаю, что я не правильно делаю вывод функции, но никак не могу понять как правильно...
C++ Перегрузка операций Здравствуйте, помогите реализовать программу: Класс - множество set. Дополнительно перегрузить следующие операции: + - добавить элемент в множество (типа set+item); + - объединение множеств;= = -... подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
25.06.2013, 11:55
Очень интересная задача.
потроха
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
int main()
{
randomize();
const int n = 5;
int massiv[n][n];
for(int i=0; i<n; i++)
  for(int j=0; j<n; j++)
    massiv[i][j] = rand()%3;
 
massiv[0][0] = 1;
massiv[0][1] = 2;
massiv[0][2] = 2;
massiv[0][3] = 1;
 
for(int i=0; i<n; i++)
  {
  for(int j=0; j<n; j++)
    {
    cout << massiv[i][j] << ' ';
    }
  cout << endl;
  }
 
 cout << endl<< endl<< endl<< endl;
 
  for(int i=0;i<n;i++) //шаг строки        ////
    for(int j=0;j<n;j++) //шаг столбца       //
        for(int c=i; c<n; c++)               //
          {                                  //
          if(massiv[c][j]==1)                //
            for(int k=i; k<c; k++)           //
              massiv[k][j] = massiv[i][j];   //
          if(massiv[i][c]==1)                //
            for(int k=j; k<c; k++)           //
              massiv[i][k] = massiv[i][j];   //
          }                                ////
 
for(int i=0; i<n; i++)
  {
  for(int j=0; j<n; j++)
    {
    cout << massiv[i][j] << ' ';
    }
  cout << endl;
  }
 
    getch();
    return 0;
}


Алгоритм грубой силы
C++
1
2
3
4
5
6
7
8
9
10
11
  for(int i=0;i<n;i++) //шаг строки        ////
    for(int j=0;j<n;j++) //шаг столбца       //
        for(int c=i; c<n; c++)               //
          {                                  //
          if(massiv[c][j]==1)                //
            for(int k=i; k<c; k++)           //
              massiv[k][j] = massiv[i][j];   //
          if(massiv[i][c]==1)                //
            for(int k=j; k<c; k++)           //
              massiv[i][k] = massiv[i][j];   //
          }                                ////

Название: 1111.JPG
Просмотров: 32

Размер: 3.8 Кб

Но условие недостаточное.
Цитата Сообщение от V1k1nG Посмотреть сообщение
Задача состоит в том, чтобы при нахождении в строке/столбце/диагонали последовательностей одинаковых чисел, ограниченных другими, например 12221,или 212, элементы, ограниченные с двух сторон, заменялись на те, которые их ограничивают
Если мы пройдемся такой заменой один раз, то получим лишь другую матрицу, не удовлетворяющую первоначальному условию. Если же проходиться в несколько итераций, то в конце концов вся матрица будет состоять только из одного крайнего левого верхнего элемента (так как с него идет обход), либо вся будет заполнена только двумя разными элементами, если они будут располагаться напротив друг друга у двух крайних стенок. И что сначала просматривать - строки или столбцы? Так как это тоже будет изменять текущую матрицу, и соответственно выдаст другой результат.

P.S. Попробуйте поподробнее описать свой алгоритм, чтобы понять, чего именно вы пытались им добиться.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru