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

Матрицы. Поиск области, заполненной единицами. C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти локальный минимум матрицы. ПОЖАЛУЙСТА! http://www.cyberforum.ru/cpp-beginners/thread216948.html
Напишите прогу поиска локального минимум матрицы на С. Вот на Паскале есть кому может поможет. Пожалуйста, вопрос зачета! uses crt; const nmax=20; type matr=array of integer; procedure PerStb(var mt:matr;x,y:byte); var i,j:byte; b:integer; begin
C++ Заполните массив целого типа значениями, образованными из степеней двойки Помогите с решением: Заполните массив целого типа значениями, образованными из степеней двойки: в mas записывается 2 в степени 0, в mas записывается 2 в степени 1, в mas записывается 2 в степени 2 и т.д., после чего выведите данные массива на экран. http://www.cyberforum.ru/cpp-beginners/thread216943.html
C++ Подскажите
Здравствуйте. Прошу помощи в задаче по с++. Нужно написать программу с классами и объектами, которая будет измерять длину строки и считать количество пробелов в ней. Спасибо
СТРОКИ :) C++
Напишите программу. Очень нужна ваша помощь! Перечислить все слова заданного предложения , которые состоят из тех же букв , что и первое слово предложения и заканчивается на одну и ту же букву , что и первое слово.
C++ Зaдача на графы с тимуса 1358 http://www.cyberforum.ru/cpp-beginners/thread216938.html
Уже который день пытаюсь решить, подскажите алгоритм, вроде бы 26% это не много. http://acm.timus.ru/problem.aspx?space=1&num=1358
C++ Двумерная матрица Дана квадратная матрица A(n,n). Найти сумму элементов находящихся ниже главной диагонали. Среди этих элементов найти максимальный положительный элемент и его координаты. Половину задания сделал, а вот найти максимальный положительный элемент(среди элементов находящихся ниже главной диагонали) и его позицию как-то не получается... #include <iostream> #include <ctime> #include <iomanip>... подробнее

Показать сообщение отдельно
Monster-Lock
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 9

Матрицы. Поиск области, заполненной единицами. C++ - C++

21.12.2010, 19:56. Просмотров 490. Ответов 1
Метки (Все метки)

Такая задача:
Дана матрица, заполненная нулями и единицами. Нужно вывести на экран максимальную область, заполненную единицами. Область должна быть прямоугольной, в остальном не имеет значения ее форма.
Код
#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
     setlocale(LC_ALL,"");
     int mat[8][8];
     for(int i=0; i<8; i++)
          for(int j=0;j<8;j++)
               mat[j][i]=rand()%2+0;

     for(int i=0; i<8; i++){
          cout<<endl;
          for(int j=0;j<8;j++)
               cout<<mat[j][i]<<" ";
     }
int st=0; int sb=0; int qw=0, qe=0;;
int x=0,y=0;
     for(int i=0; i<8; i++){
          for(int j=0;j<8;j++){
               if(mat[j][i]==1){
                    x=i;
                    y=j;
                    while(mat[j][i]!=0){
                         st++;
                    }
               }
               for(int k=j;k<8;k++){
                    while(mat[k][st]!=0){
                         sb++;
                    }
               }
               for(int r=st; r!=0; r--){
                    qw=st;
                    while(mat[sb][r]!=0){
                         qw--;
                    }
               }
               for(int z=qw; z!=0; z--){
                    while(mat[z][qw]!=0){
                         qe=z;
                    }
               }
               if (x==qw && y==qe){
                    cout<<"это то: ";
                    for(int g=x; g<st; g++){
                         cout<<endl;
                         for(int h=y;h<sb;h++){
                              cout<<mat[g][h]<<" ";
                         }
                    }
               }

          }
     }

     cout<<endl;
     system("pause");
}
В коде зависает цикл. Долго отлаживал, так проблему и не нашел.
Правил таким образом:
Код
while(mat[st][i]!=0){
    st++;
}
за границы массива вроде не выходит, но цикл все равно виснет. Собственно говоря таких циклов 4, и проблема в них одна и та же.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru