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

Надо найти "острова" на квадратной матрице - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ работа со строками. http://www.cyberforum.ru/cpp-beginners/thread37992.html
Здравствуйте, я студент 1го курса, попросили решить задачки на C++, а я с ним как то не очень.буду рад любой помоши, задачи выкладываю ниже Задача 55 Переформировать матрицу таким образом, чтобы ее столбцы располагались по возрастанию их последних элементов. Задача 56 Вычислить факториал числа n. Факториал числа представить в виде целочисленного массива десятичных цифр. Задача 57...
C++ нахождение минимальных слов Помогите пожалуйста нужна програмка для нахождение минимальных слов в строке и подсчёта их количества :help: слово минимальной длинны (самое короткое, состоящее из наименьшего количества символов слово в строке которая вводится) http://www.cyberforum.ru/cpp-beginners/thread37989.html
Графики функций C++
В курсовой задание построить графики функций входного и выходного сигналов времени Входной: Uvh=U/exp(pow(a,2.0)*pow(t,2.0)) Выходной: for(i=0;i<N;i++) {if (Uvh<0) Uvih=0; else if ((Uvh<U1)&&(Uvh>=0)) Uvih=Uvh*U3/U1; else if ((Uvh<U2)&&(Uvh>=U1)) Uvih=Uvh*(U4-U3)/(U2-U1)+U3-(U1*U4-U1*U3)/(U2-U1);}
C++ Ошибка с дебагом...
есть код программы #include "stdafx.h" #include <iostream> #include <iomanip> #include <conio.h> #include <string.h> using namespace std; void Choice(); int c=0; //Глобальная переменная с - для количества элементов структуры
C++ максимальный элемент массива http://www.cyberforum.ru/cpp-beginners/thread37954.html
#include <stdio.h> #include <conio.h> main() { int n,i; int a; printf("\n Vvedite kolichestvo elementov v massive \n"); scanf("%d",&n); printf("Vedite %d elementov massiva \n",n); for(i=1;i<=n;i++)
C++ Работа с файлом и Обратная матрица Срочно нужна помошь! Практика горит! Вот задачи: 1)Создать файл, содержащий текст на английском языке. Выбрать из него те символы, которые встречаются в нем только один раз, в том порядке, в котором они встречаются в тексте. 2)Создать файл, содержащий текст на английском языке. Выбрать из него те символы, которые встречаются в нем только один раз, в том порядке, в котором они встречаются в... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17409 / 5647 / 354
Регистрация: 30.03.2009
Сообщений: 15,451
Записей в блоге: 26
03.06.2009, 09:56     Надо найти "острова" на квадратной матрице
Возможно, что мой вариант чем-то совпадает с вариантом mikutu, но его объяснения я затруднился понять. Метод мой заключается в следующем. Ищем первую попавшуюся единицу и запускаем процесс, который удалит остров (содержащий данную единицу) с поля. После удаления острова увеличиваем счётчик и ищем слудующую единицу и т.д. Удалять острова можо на оргинальном массиве, а можно и сделать копию

Рекурсивная процедура удаления выглядит примерно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int a[10][10]; // <--- наш массив
 
// Удаление острова, содержащего поле x, y
void
delete_island (int x, y)
{
  // Для внутреннего контроля (чтобы убедиться, что мы всё делаем правильно)
  if (a[x][y] != 1)
    abort ();
 
  // Сразу сотрём данную точку, чтобы повторно сюда не зайти и не зациклиться
  a[x][y] = 0;
 
  // Обходим четырёх соседей данной точки, учитывая границы поля
  // Предполагая, что координаты соседа x1, y1, нужно на каждого
  // соседа запутить код
  if (a[x1][y1] == 1)
    delete_island (x1, y1);
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru