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

Задача о прямоугольниках С++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ подскажите почему программа работает неправильно http://www.cyberforum.ru/cpp-beginners/thread370478.html
Использование двумерного массива как аргумента функции и возвращаемого значения функции выдает предупреждение:1>------ Build started: Project: Glushkov_double_massive_and_func, Configuration:...
C++ бинарные деревья Вот у меня есть программа, которая создает бинарное дерево из массива целых чисел. #include <iostream> #include <conio.h> using namespace std; struct bin_tree { int value; bin_tree... http://www.cyberforum.ru/cpp-beginners/thread370476.html
C++ Определить номер первого из столбцов матрицы, содержащих хотя бы один нулевой элемент
Задача с двумерным массивом на C (не C++). Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент. Характеристикой строки...
C++ Динамическое выделение памяти в dll
Читая Рихтера наткнулся вот на такое замечание:NOTE: Важно понимать, что единое адресное пространство состоит из одного исполняемого модуля и нескольких DLL-модулей. Одни из них могут быть...
C++ Транспонирование матрицы http://www.cyberforum.ru/cpp-beginners/thread370438.html
int _tmain(int argc, _TCHAR* argv) { const int n=5; int a; srand(GetTickCount()); for (int i=0; i < n; i++) for (int j=0; j < n; j++) a=rand()%10; for (int i=0;i<n;i++) {
C++ Перегрузка оператора ==, в классе Матрица #ifndef MATRIX_H #define MATRIX_H template <class T> class Matrix { public: Matrix(int Rows, int Cols); ~Matrix(); int RowsCount()const; подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.10.2011, 18:34
Цитата Сообщение от Garred Посмотреть сообщение
valeriikozlov, прямоугольники не касаются.
На самом деле проще (и быстрее) в этом случае подсчитать кол-во верхних левых вершин прямоугольников.
Допустим имеем массив mas[M][N] заполненный нулями и единицами, тогда так:
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
int col=0;
for(int i=0; i<M; i++)
    for(int j=0; j<N; j++)
        if(mas[i][j]==1)
        {
            if(i==0)
            {
                if(j==0)
                    col++;
                else
                {
                    if(mas[i][j-1]==0)
                        col++;
                }
            }
            else
            {
                if(j==0)
                {
                    if(mas[i-1][j]==0)
                        col++;
                }
                else
                {
                    if(mas[i][j-1]==0 && mas[i-1][j]==0)
                        col++;
                }
            }
        }
 // вот здесь в переменной col находится нужный результат
4
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru