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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2018, 17:27   #1
Dormin
Пользователь
 
Регистрация: 14.04.2018
Сообщений: 13
По умолчанию что нужно ещё добавить, что бы отсортировать готовый двумерный массив?

В конце после изменения массива надо его отсортировать любым способом, а я не могу понять как это сделать с двумерным.
Что нужно добавить?

Код:
#include <iostream>
#include <math.h>
#include <locale>
using namespace std;
void main()
{
	setlocale(LC_ALL, "ukrainian");
	const int m = 2, n = 3;
	int i, j;
	float A[m][n], max = 0;
	cout << "Введіть масив розмірністю 2x3: " << endl;
	for (i = 0; i<m; i++)
		for (j = 0; j<n; j++)
		{
			cin >> A[i][j];
			if (fabs(A[i][j])>fabs(max))
				max = A[i][j];
		}
	cout << "Вивід нового масиву: " << endl;
	for (i = 0; i<m; i++)
	{
		cout << std::endl;
		for (j = 0; j<n; j++)
		{
			A[i][j] += max;
			cout << A[i][j] << "\t";
		}
	}
}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 14.04.2018 в 17:56.
Dormin вне форума Ответить с цитированием
Старый 14.04.2018, 17:57   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Для начала надо определиться что такое "отсортированный двумерный массив".
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 14.04.2018, 18:01   #3
Dormin
Пользователь
 
Регистрация: 14.04.2018
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Для начала надо определиться что такое "отсортированный двумерный массив".
Просто отсортировать как угодно, никаких больше критериев нет.
Dormin вне форума Ответить с цитированием
Старый 14.04.2018, 19:11   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

у двумерных массивов нет порядка, поэтому вам сначала, хотя бы для себя, надо ответить на вопрос Alex11223
p51x вне форума Ответить с цитированием
Старый 14.04.2018, 19:20   #5
Dormin
Пользователь
 
Регистрация: 14.04.2018
Сообщений: 13
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
у двумерных массивов нет порядка, поэтому вам сначала, хотя бы для себя, надо ответить на вопрос Alex11223
В задании сказано: "выполнить сортировку элементов массива одним из известных способов". Вот и всё

Я тут попытался сам добавить сортировку, но сортирует оно как-то странно. Иногда видно, что отсортировано, а иногда просто каша.

Код:
#include <iostream>
#include <math.h>
#include <locale>
using namespace std;
void main()
{
	setlocale(LC_ALL, "ukrainian");
	const int m = 2, n = 3;
	int i, j;
	float A[m][n], max = 0;
	cout << "Введiть масив розмiрнiстю 2x3: " << endl;
	for (i = 0; i<m; i++)
		for (j = 0; j<n; j++)
		{
			cin >> A[i][j];
			if (fabs(A[i][j])>fabs(max))
				max = A[i][j];
		}
	cout << " " << endl;
	cout << "Вивiд нового масиву: " << endl;
	for (i = 0; i<m; i++)
	{
		cout << std::endl;
		for (j = 0; j<n; j++)
		{
			A[i][j] += max;
			cout << A[i][j] << "\t";
		}
	}
	cout << endl;
	cout << " " << endl;
	cout << "Вивiд масиву пiсля застосування сортування бульбашкою: "<<endl;
	cout << " " << endl;
	float temp = 0;
		for (int z = 0; z<(m * n - 1); z++)   
												  
			for (int i = 0; i<m; i++) {
				for (int j = 0; j<n; j++) {
					
					if (i == m - 1 && j == n - 1) {  
						continue;
					}
					

					if (A[i][j] > A[i][j + 1]) { 
						temp = A[i][j];        
						A[i][j] = A[i][j + 1];
						A[i][j + 1] = temp;
					}
				}
			}
	
	for (int i = 0; i<m; i++) {
		for (int j = 0; j<n; j++) {
			cout.width(5);
			cout << A[i][j];
		}
		cout << " "<<endl;
		cout << " " << endl;
	}
}
Dormin вне форума Ответить с цитированием
Старый 14.04.2018, 21:00   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Dormin Посмотреть сообщение
В задании сказано: "выполнить сортировку элементов массива одним из известных способов". Вот и всё
По этому я и написал - хотя бы для себя.

Цитата:
Сообщение от Dormin Посмотреть сообщение
Я тут попытался сам добавить сортировку, но сортирует оно как-то странно. Иногда видно, что отсортировано, а иногда просто каша.
Так какой порядок вы выбрали? Как ответили на вопрос?
p51x вне форума Ответить с цитированием
Старый 14.04.2018, 22:23   #7
Dormin
Пользователь
 
Регистрация: 14.04.2018
Сообщений: 13
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение

Так какой порядок вы выбрали? Как ответили на вопрос?
Я хотел, что бы массив выглядел так:
123
456
Иногда оно сортирует так, а иногда нет. Смотря какие числа.
Dormin вне форума Ответить с цитированием
Старый 15.04.2018, 00:10   #8
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от Dormin Посмотреть сообщение
Я хотел, что бы массив выглядел так:
123
456
Иногда оно сортирует так, а иногда нет. Смотря какие числа.
"Спрямите" массив в 1-мерный, отсортируйте, а потом снова разбейте, как хочеться.
alexzk вне форума Ответить с цитированием
Старый 15.04.2018, 11:55   #9
Dormin
Пользователь
 
Регистрация: 14.04.2018
Сообщений: 13
По умолчанию

Цитата:
Сообщение от alexzk Посмотреть сообщение
"Спрямите" массив в 1-мерный, отсортируйте, а потом снова разбейте, как хочеться.
можно узнать как это сделать?
Dormin вне форума Ответить с цитированием
Старый 15.04.2018, 12:04   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Одномерный индекс можно преобразовать в двумерный (перед обращением к массиву).

Вторая ссылка по "2d index to 1d" в гугле
https://softwareengineering.stackexchange.com/a/212813
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что нужно добавить в коде, что бы письмо приходило мне от заказчика на почту obus@mail.ru Obus HTML и CSS 0 04.12.2016 19:59
Ещё одна тема, что нужно знать программисту pufystyj Общие вопросы по программированию, компьютерный форум 16 06.11.2012 01:09
Двумерный массив(матрица).Кое-что не могу понять и сделать Виндовс 7 Паскаль, Turbo Pascal, PascalABC.NET 0 02.01.2012 20:27