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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2018, 13:56   #1
MksMsh
Новичок
Джуниор
 
Регистрация: 23.12.2018
Сообщений: 1
По умолчанию Работа с матрицами

Здраствуйте!
Мне нужна помощь по заданию. Пожалуйста, относитесь с понимаем. Я только первый курс и довольно ранимая душа :D

Для допуска к сессии нужно дописать программы. Но, с одной из них возникают большие проблемы. Видимо, я не до конца понимаю как устроены двумерные массивы. И тем более не осознаю, как корректнее с ними работать. Потому что я написала код, который, как мне казалось, вполне логичный. Однако почему-то ответы не выводятся. Пожалуйста. Посмотрите мой код и задачу. Если же мой код вообще не соответствует выполнению задания, могу я попросить замену моему алгоритму? Просто, честно говоря, я другой алгоритм не могу придумать

Задание: .Составить программу, которая в матрице D(m,n), m≤10, n≤12, находит все элементы, для которых максимальный элемент среди предшествующих элементов строки, в которой стоит элемент, превышает максимальный элемент среди предшествующих элементов столбца, в котором расположен элемент. Если предшествующие элементы отсутствуют, то считать
максимальный равным нулю. Найденные элементы переписать в одномерный массив. Вывести матрицу в виде матрицы, а под ней – элементы сформированного массива.
Код:
#include "pch.h"
#include <iostream>
using namespace std;

int main()
{

	setlocale(LC_ALL, "RUS");
	cout << "Практикум 13 \n\n";

	const int ROW = 7;
	const int COLL = 10;

	double arr[ROW][COLL];
	double arr2[ROW][COLL];
	double arr3[ROW][COLL];

	int k = 0;

	for (int i = 0; i < ROW; i++)
	{

		for (int j = 0; j < COLL; j++)

		{
			arr[i][j] = rand() % 21 + 20;
		}

	}

	cout << "а) В стеке\n\nНаша матрица:\n";

	for (int i = 0; i < ROW; i++)
	{

		for (int j = 0; j < COLL; j++)

		{
			std::cout << arr[i][j] << "  ";
		}

		cout << "\n";

	}




	for (int i = 0; i < ROW; i++)

	{

		for (int j = 0; j < COLL; j++)

		{
			int c = j;
			int d = i;

			while (c >= 0)
			{


				if ((c > 0)&&(d > 0))
				{
					while (c >= 0)
					{

						if (arr[i][j] > arr[i][c - 1])
						{


							c--;
							if (c < 0)
							{
							  arr2[i][j] = arr[i][j];
							  k++;
							}

						}

						else
						{
							arr2[i][j] = -1;
							c = -1;

						}
					}


				}



				else 
				{
					arr2[i][j] = 0;
					c--;
				}

			}



		}



	}


	cout << "\n\n";
	for (int i = 0; i < ROW; i++)
	{
		for (int j = 0; j < COLL; j++)
		{
			cout << arr2[i][j] << "\t";
		}
		cout << "\n";
	}

	


	for (int j = 0; j < COLL; j++)

	{

		for (int i = 0; i < ROW; i++)

		{
			int a = j;
			int b = i;

			while (b >= 0)
			{


				if ((b > 0) && (a > 0))
				{
					while (b >= 0)
					{

						if (arr[i][j] > arr[b - 1][j])
						{


							b--;
							if (b < 0)
							{

								arr3[i][j] = arr[i][j];
							}

						}

						else
						{
							arr3[i][j] = -1;
							b = -1;

						}
					}


				}



				else
				{
					arr3[i][j] = 0;
					b--;
				}

			}



		}



	}



	cout << "\n\n";
	for (int i = 0; i < ROW; i++)
	{
		for (int j = 0; j < COLL; j++)
		{
			cout << arr3[i][j] << "\t";
		}
		cout << "\n";
	}

	cout << "\n\n";

	int n = -1;
	int *arr4 = new int[n];


	for (int i = 0; i < ROW; i++)

	{

		for (int j = 0; j < COLL; j++)

		{
			if ((arr2[i][j] == 0 )&&( arr3[i][j] == 0 ))
			{
				n++;
				arr4[n] = 0;
			}

			else if ((arr2[i][j] > 0)&&(arr3[i][j]))
			{
				n++;
				arr4[n] = arr2[i][j];
			}


		}
	}

	cout << "\n\n";

	for (int i = 0; i < n + 1; i++)
	{
		cout << arr4[i] << ", ";
	}

	cout << "\n\n";

	delete[] arr4;
}
P:S: С наступающим вас
MksMsh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си - работа с матрицами. airman23 Помощь студентам 2 23.05.2012 12:18
Работа с матрицами С# XcideD Помощь студентам 8 22.04.2012 02:19
Работа с матрицами. С++ xazratbek Помощь студентам 3 19.12.2011 00:21
Работа с матрицами (норма матрицы, работа со строками) Neitrosha Помощь студентам 1 26.11.2010 20:19