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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2017, 15:38   #1
ggjgj
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 83
По умолчанию Отсортировать диагонали, параллельные побочной по возрастанию

В файле содержится двумерный массив размерностью n на n. В новый файл вывести отсортированный массив.
Отсортировать диагонали, параллельные побочной по возрастанию с помощью сортировки вставками.
ggjgj вне форума Ответить с цитированием
Старый 06.04.2017, 13:07   #2
ggjgj
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 83
По умолчанию

Помогите пожалуйста, хотя бы какими-нибудь набросками (
ggjgj вне форума Ответить с цитированием
Старый 06.04.2017, 17:03   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

сортировка вставками описание
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 08.04.2017, 19:11   #4
ggjgj
Пользователь
 
Регистрация: 25.10.2016
Сообщений: 83
По умолчанию

помогите исправить, чтобы диагональ была побочной, а не главной и по возрастанию. и жалуется почему то на строчку
Код:
mas temp;
Код:
#include <fstream>
#include <iomanip>
#include <iostream>

using namespace std;
ifstream in("input.txt");
ofstream out("output.txt");
void sort(int *a, int n)
{
	mas temp;
	int i, j;
	for (i = 1; i<n; i++)
	{
		j = i;
		while (j>0 &&a[j]<a[j - 1])
		{
				temp = a[j];
			a[j] = a[j - 1];
			a[j - 1] = temp;
			j--;
		}
	}
}

int main()
{
	int **mas;
	int n, i, j, m;
	int a[10][10];
	mas = new int*[n];
	in >> n >> m;
		for (i = 0; i < n; i++)
		{
			mas = new int*[n];
			for (j = 0; j<n; j++)
				in >> a[i][j];
		}
	int *diag1;
	diag1 = new int[n + 1];
	for (i = n - 2; i >= 0; i--)
	{
		for (j = 0; j<n - i; j++) diag1[j] = mas[j][i + j];

		sort(diag1, n - i);
		for (j = 0; j<n - i; j++) mas[j][i + j] = diag1[j];
	}
	int *diag2;
	diag2 = new int[n + 1];
	for (i = 1; i<n - 1; i++)
	{
		for (j = i; j <= n - 1; j++) diag2[j] = mas[j][j - i];
		sort(diag2, n - i);
		for (j = i; j <= n - 1; j++) mas[j][j - i] = diag2[j];
	}
	delete diag1;
	delete diag2;
	out << n << '\t' << m << '\n';
	for (i = 0; i<n; i++)
	{
		for (j = 0; j<n; j++)
			out << setw(5) << a[i][j];
		out << '\n';
		delete mas;
	}
	in.close();
	out.close;
	return 0;
}
ggjgj вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отсортировать диагонали матрицы параллельные побочной по возрастанию элементов методом выбора. - C++ vladrrom Помощь студентам 1 18.03.2017 11:48
pascal или Delphi: массив A[n,n]. Если на главной диагонали нет отрицательных элементов, то элементы побочной диагонали - удвоить, Ману Помощь студентам 3 29.05.2014 18:00
Элементы выше побочной диагонали по возрастанию. rwss gle Паскаль, Turbo Pascal, PascalABC.NET 9 29.03.2011 20:18
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 07:15