Форум программистов, компьютерный форум 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*' знаю, что я не правильно делаю вывод функции, но никак не могу понять как правильно делать( ошибка в 117 строчке мысль такая: введение <...> потом пользователь вводит id, потом его спрашивают - хочет ли он сменить тему - и вот в этом то ошибка( #include <iostream> #include...
C++ Перегрузка операций Здравствуйте, помогите реализовать программу: Класс - множество set. Дополнительно перегрузить следующие операции: + - добавить элемент в множество (типа set+item); + - объединение множеств;= = - проверка множеств на равенство. В перегрузках вообще ничего не соображаю.. подробнее

Показать сообщение отдельно
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 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. Попробуйте поподробнее описать свой алгоритм, чтобы понять, чего именно вы пытались им добиться.
 
Текущее время: 05:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru