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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2015, 16:49   #1
Ilai
Пользователь
 
Регистрация: 10.09.2014
Сообщений: 90
Лампочка Динамический массив

Добрый день!

Помогите пожалуйста с программой

Дана матрица А(nхn). Расположить столбцы матрицы по убыванию их наибольших элементов.

Начал делать программу, а вот как отсортировать массив не знаю. Помогите, пожалуйста
Код:
#include <iostream>
using namespace std;
int vvod(const int N, const int M)
{
	int** mas = new int* [N];

	for (int i = 0; i < N; i++)
	{
		mas[i] = new int[N];
	}

	for (int i = 0; i < N; i++)
	{
		for (int k = 0; k < N; k++)
		{
			cin >> mas[i][k];
		}
	}

	for (int i = 0; i < N; i++)
	{
		for (int k = 0; k < N; k++)
		{
			cout << mas[i][k] << " ";
		}
		cout << endl;
	}
	return 0;
}
int main() {
	using namespace std;
	int N, M;
	cin >> N;
	M = N;
	vvod(N, M);
	system("pause");
}
Ilai вне форума Ответить с цитированием
Старый 26.05.2015, 17:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Для начала рекомендую сделать:
Код:
int** mas = new int* [N+1];
Чтоб помещать в последнюю строку экстремумы:
Код:
	for (int i = 0; i < N; i++)
	{
		for (int k = 0; k < N; k++)
		{
			cin >> mas[i][k];
 mas[N][k]=(i==0 || mas[N][k]<mas[i][k])?mas[i][k]:mas[N][k];
		}
	}
А потом делать двойным циклом сортировку по этой последней строке.
И если mas[N][i]<mas[N][k] то еще один цикл, меняющий элементы столбцов i и k
идею понял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.05.2015, 16:53   #3
Ilai
Пользователь
 
Регистрация: 10.09.2014
Сообщений: 90
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Для начала рекомендую сделать:
Код:
int** mas = new int* [N+1];
Чтоб помещать в последнюю строку экстремумы:
Код:
	for (int i = 0; i < N; i++)
	{
		for (int k = 0; k < N; k++)
		{
			cin >> mas[i][k];
 mas[N][k]=(i==0 || mas[N][k]<mas[i][k])?mas[i][k]:mas[N][k];
		}
	}
А потом делать двойным циклом сортировку по этой последней строке.
И если mas[N][i]<mas[N][k] то еще один цикл, меняющий элементы столбцов i и k
идею понял?
Не совсем понял
Ilai вне форума Ответить с цитированием
Старый 28.05.2015, 17:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тебе нужно где-то хранить максимумы:
1) Заводить кучу переменных
2) Заводить новый одномерный массив
3) Приклееть к существующему массиву дополнительную строку, но в расчетах ее не учитывать. Такую себе невидимую строку. В ней и хранить. Типа Footer.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамический массив frixer Общие вопросы Delphi 7 26.09.2013 20:58
Динамический массив, массив указателей alexalisa Паскаль, Turbo Pascal, PascalABC.NET 4 22.04.2011 21:33
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Динамический массив Ueshua Общие вопросы C/C++ 7 28.12.2009 09:45
динамический массив Dimon Паскаль, Turbo Pascal, PascalABC.NET 3 21.03.2008 18:08