Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2018, 15:59   #1
Megabuzz
Пользователь
 
Регистрация: 15.10.2018
Сообщений: 11
По умолчанию В матрице переставить отделённую от всех единицу к другим единицам

Есть массив из 0 и 1. Нужно переставить отделённую от всех 1 к другим(другой). Например есть массив:

10011
00001
00100

Должно получиться что-то такое:
00111 или 00011
00001 00001
00001 01100

Ну и так далее.

Вот сам код как найти эту единицу.(Буквы и вывод делал для себя)

Код:
#include "pch.h"
#include <iostream>
#include <Windows.h>
#include <ctime>

using namespace std;



int main()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);

	srand(time(NULL));
	
	/*int n, m;
	cout << "Введите количество строк:" << endl;
	cin >> n;
	cout << "Введите количество столбцов:" << endl;
	cin >> m;

	int **arr = new int*[n];
	for (int i = 0; i < n; i++)
	{
		arr[i] = new int[m];
	}*/
	const int n = 5, m = 5;
	int arr[n][m];

	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			arr[i][j] = rand() % 2;
			cout << arr[i][j];
		}
		cout << endl;
	}

	


	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{ 
			if (i == 0 && j < m - 1 && j > 0)
			{
				if (arr[i][j] == 1 && arr[i + 1][j] == 0 && arr[i][j - 1] == 0 && arr[i][j + 1] == 0)
				{
					cout << "A ";
					cout << i << j << endl;
				}
			}
			if (i > 0 && i < n - 1 && j > 0 && j < m - 1)
			{
				if (arr[i][j] == 1 && arr[i + 1][j] == 0 && arr[i - 1][j] == 0 && arr[i][j - 1] == 0 && arr[i][j + 1] == 0)
				{
					cout << "B ";
					cout << i << j << endl;
				}
			}
			if (j == m - 1 && i == 0)
			{
				if (arr[i][j] == 1 && arr[i + 1][j] == 0 && arr[i][j - 1] == 0)
				{
					cout << "C ";
					cout << i << j << endl;
				}
			}
			if (j == 0 && i == 0)
			{
				if (arr[i][j] == 1 && arr[i + 1][j] == 0 && arr[i][j + 1] == 0)
				{
					cout << "D ";
					cout << i << j << endl;
				}
			}
			if (j == 0 && i == n - 1)
			{
				if (arr[i][j] == 1 && arr[i - 1][j] == 0 && arr[i][j + 1] == 0)
				{
					cout << "E ";
					cout << i << j << endl;
				}
			}
			if (j == 0 )
			{
				if (arr[i][j] == 1 && arr[i - 1][j] == 0 && arr[i + 1][j] == 0 && arr[i][j + 1] == 0)
				{
					cout << "F ";
					cout << i << j << endl;
				}
			}
			if (i == n - 1 && j > 0 && j < m - 1)
			{
				if (arr[i][j] == 1 && arr[i - 1][j] == 0 && arr[i][j - 1] == 0 && arr[i][j + 1] == 0)
				{
					cout << "G ";
					cout << i << j << endl;
				}
			}
			if (j == m - 1 && i > 0 && i < n - 1)
			{
				if (arr[i][j] == 1 && arr[i - 1][j] == 0 && arr[i][j - 1] == 0 && arr[i + 1][j] == 0)
				{
					cout << "H ";
					cout << i << j << endl;
				}
			}
			if (i == n - 1 && j == m - 1)
			{
				if (arr[i][j] == 1 && arr[i - 1][j] == 0 && arr[i][j - 1] == 0)
				{
					cout << "Q ";
					cout << i << j << endl;
				}
			}
		}
	}


	cout<<endl<<endl<<endl;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			cout << arr[i][j];
		}
		cout << endl;
	}
	//for (int i = 0; i < n; i++)
	//	delete[] arr[i];
	//delete[] arr;

	return 0;
}
Megabuzz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В матрице n-го порядка переставить строки так, чтобы на главной диагонали матрицы были расположены элементы, наибольшие по абсолютной величине. Hunter__ Общие вопросы Delphi 3 07.05.2017 08:08
Задача на Двухмерный массив ... !!! В исходной матрице заменить элементы главной диагонали на единицу... M3A7X9 Паскаль, Turbo Pascal, PascalABC.NET 0 10.06.2014 17:02
Поиск всех контуров по матрице изоморфности fbsd Помощь студентам 0 28.11.2012 08:50
1) В массиве элемент с нечётным индексом переставить местами 2) по вещественной квадратной матрице построить вектор ЖунькООО Помощь студентам 1 10.10.2011 11:16
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца Aleo13 Помощь студентам 5 15.10.2008 18:34