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

Выяснить сколько в массиве непересекающихся прямоугольников. - C++

Восстановить пароль Регистрация
 
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
26.05.2014, 14:57     Выяснить сколько в массиве непересекающихся прямоугольников. #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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main()
{
    int n,m,i,j,s=0;
    FILE *c;
    FILE *d;
 
    c = fopen("rect.dat", "w");
 
    if(c == 0)
        printf("Error");
    else{
        scanf("%d %d", &n, &m);
        int **a = new int*[n];
        for(i = 0;i < n;i++)
            a[i] = new int[m];
        for(i = 0;i < n;i++){
            for(j = 0;j < m;j++){
                printf("%d ", a[i][j] = rand() % 2);
            }
            printf("\n");
        }
        for(i = 0;i < n;i++){
            for(j = 0;j < m;j++){
                if(a[i][j] = 1)
                else if(
    fclose(c);
 
    d = fopen("rect.dat", "r");
    if(d == 0)
        printf("Error");
    else{
        fscanf(c,"%d", &s);
        printf("%d",s);
    }
        fclose(d);
 
        getch();
 
        return 0;
}
Я понимаю, что нужно пройтись циклом по массиву и проверить количество заготовок. Я уже сделал одну проверку.
C++
1
if(a[i][j] = 1)
Но вот что написать в else if на тот случай, если единиц несколько и они все рядом - не могу понять. Помогите, если не трудно.
Миниатюры
Выяснить сколько в массиве непересекающихся прямоугольников.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2014, 14:57     Выяснить сколько в массиве непересекающихся прямоугольников.
Посмотрите здесь:

C++ Дан массив из N целых чисел. Выяснить имеется ли в массиве хотя бы одно нечетное отрицательное число и определить его местонахождение в массиве
Выяснить, сколько в строке цифровых символов C++
C++ Даны положительные действительные числа a,b,c,d. Выяснить, можно ли один из прямоугольников целиком поместить внутри другого прямоугольника
Сколько прямоугольников в матрице C++
C++ Выяснить сколько покупателей воспользовались скидкой.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
26.05.2014, 14:58  [ТС]     Выяснить сколько в массиве непересекающихся прямоугольников. #2
Извините, саму задачу не добавил.

Урфин Джюс решил смастерить свое деревянное войско. Прежде чем делать солдата, Урфин рисует на прямоугольном листочке в клеточку все заготовки, которые для этого необходимы. Каждая заготовка представляет собой прямоугольник. Причем нарисованные прямоугольники не пересекаются и даже не соприкасаются между собой (то есть не имеют общих точек). Определите, сколько заготовок нарисовал Урфин Джюс.

Формат входного файла rect.dat

Текстовый файл rect.dat содержит несколько строк. В первой строке записаны два целых числа N и M, разделенные пробелом (1 ≤ N, M ≤ 1000) — размеры прямоугольного листа в клеточку. N — это количество строк, M — количество столбцов.

Каждая из последующих N строк файла содержит ровно M чисел, разделенных пробелами. Каждое из чисел соответствует клетке листа и равно либо 0, если соответствующая клетка не занята заготовкой, либо 1, если соответствующая клетка принадлежит какой-либо заготовке.
Формат выходного файла rect.sol

Текстовый файл rect.sol должен содержать единственное целое число — количество заготовок, которое Урфин Джюс нарисовал на своем листке в клеточку.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
26.05.2014, 15:36     Выяснить сколько в массиве непересекающихся прямоугольников. #3
Sh@dow777, вот, когда-то придумалось, почитайте: Найти площадь крупнейшего сплошного прямоугольника суши
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
26.05.2014, 15:51  [ТС]     Выяснить сколько в массиве непересекающихся прямоугольников. #4
SatanaXIII, Разве задача такая запутанная? Я учусь во втором семестре 1-го курса. Я не думал, что задачи такие сложные будут. И мне нужно найти не только количество прямоугольников, но еще и одиночных единиц.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
26.05.2014, 16:17     Выяснить сколько в массиве непересекающихся прямоугольников. #5
Sh@dow777, чего запутанного? Там подробно расписанный алгоритм, с рабочим кодом. С картинками.
Если вы конечно придумаете менее запутанно, то я буду только рад.
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
26.05.2014, 16:58  [ТС]     Выяснить сколько в массиве непересекающихся прямоугольников. #6
SatanaXIII, Я имею в виду, что у меня немного другая задача. Там вы ищете площадь, а мне нужно количество. Скажите, мой недописанный код совсем неверный? И если отчасти верный, то как его закончить?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,333
Завершенные тесты: 1
26.05.2014, 17:04     Выяснить сколько в массиве непересекающихся прямоугольников. #7
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Там вы ищете площадь, а мне нужно количество.
Разница-то невелика. Я там перебираю все и нахожу площадь. Вам же нужно перебрать все и посчитать количество.

Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Скажите, мой недописанный код совсем неверный? И если отчасти верный, то как его закончить?
Вы его словами опишите лучше - что вы делаете? А-то у меня сейчас слишком жарко, чтобы вчитываться в код.
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
26.05.2014, 17:25  [ТС]     Выяснить сколько в массиве непересекающихся прямоугольников. #8
SatanaXIII, Ну вообщем я прохожу по массиву циклом и делаю проверки. Первая проверка
C++
1
if(a[i][j] = 1)
на случай когда в массиве одиночные единицы. А вот как еще прямоугольники подсчитать - не могу додумать.
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
26.05.2014, 17:35     Выяснить сколько в массиве непересекающихся прямоугольников. #9
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
C++
1
if(a[i][j] = 1)
==
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2014, 17:49     Выяснить сколько в массиве непересекающихся прямоугольников.
Еще ссылки по теме:

Выяснить, сколько бюллетеней осталось необработанными C++
C++ Выяснить сколько всего заданных слов в предложении
Выяснить, во сколько раз z больше d C++

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

Или воспользуйтесь поиском по форуму:
Sh@dow777
11 / 11 / 3
Регистрация: 10.12.2013
Сообщений: 645
26.05.2014, 17:49  [ТС]     Выяснить сколько в массиве непересекающихся прямоугольников. #10
Kuzia domovenok, А ну да, я все время путаю = и == Может быть вы мне скажете, правильно ли я начал писать программу?
Yandex
Объявления
26.05.2014, 17:49     Выяснить сколько в массиве непересекающихся прямоугольников.
Ответ Создать тему
Опции темы

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