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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2016, 12:43   #1
Meksvinz
 
Регистрация: 05.11.2016
Сообщений: 7
По умолчанию С/C++. Нужна помощь в решении задачи на сортировку матрицы

На лабораторной работе получил задачу на сортировку матрицы n*m.
Формулировка задачи:

Переставить столбцы матрицы в соответствии к возрастанию элементов третьей строки

Объявил матрицу, организовал ввод её элементов с клавиатуры. Понимаю, что дальше нужно использовать цикл+метод пузырька, но в какой форме бы я не записал это, получается полнейшая дичь и программа работает не правильно. Скорее всего я не понимаю логики процесса. Прошу ветеранов объяснить, что и как и по возможности привести пример кода.

Мой код (Объявление и заполнение матрицы):
Код:
#include "stdafx.h"
#include "iostream"
using namespace std;
int main()
{
	int i, j, k, bufer, n, m, g, h;
	int **mass;
	cout << "(n)strok (m)stolbcov: " << endl;
	cin >> n >> m;
	mass = new int*[n];
	for (i = 0; i < n; i++){
		mass[i] = new int[m];
	}
	cout << "vvod: " << endl;
	for (i = 0; i < n; i++){
		for (j = 0; j < m; j++){
			cin >> mass[i][j];
		}
		}
	}
Заранее спасибо

Последний раз редактировалось Meksvinz; 05.11.2016 в 12:47.
Meksvinz вне форума Ответить с цитированием
Старый 05.11.2016, 13:31   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так возьмите пузырек и сортируйте 3 строку, только вместо перестановки элементов внутри напишите перестановку столбцов.
p51x вне форума Ответить с цитированием
Старый 05.11.2016, 19:03   #3
Meksvinz
 
Регистрация: 05.11.2016
Сообщений: 7
По умолчанию

Задачку решил. Кому интересно, вот код:
Код:
#include "stdafx.h"
#include "iostream"
using namespace std;
int main()
{
	int i, j, bufer, n, m;
	int **mass;
	cout << "(n)strok (m)stolbcov: " << endl;
	cin >> n >> m;
	mass = new int*[n];
	for (i = 0; i < n; i++){//разметка матрицы
		mass[i] = new int[m];
	}
	cout << "vvod: " << endl;
	for (i = 0; i < n; i++){//ввод матрицы
		for (j = 0; j < m; j++){
			cin >> mass[i][j];}}
	for (i = 0; i < m - 1;i++){
		for (j = 0; j < m - 1;j++){
			if (mass[2][j]>mass[2][j+1]){
				for (int k=0; k < n; k++){
					bufer = mass[k][j];
					mass[k][j] = mass[k][j + 1];
					mass[k][j + 1] = bufer;
				}
			}
		}}
	for (i = 0; i < n; i++ ,cout<<endl){
		for (j = 0; j < m; j++){
			cout << mass[i][j]<<" ";}}





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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в решении задачи MarcusAurelius Помощь студентам 10 14.09.2015 19:47
Нужна помощь в решении задачи на C(Си). Pug_from_Mordor Помощь студентам 4 10.11.2014 12:12
Нужна помощь в решении задачи HeaD90 Помощь студентам 0 02.05.2009 18:47
нужна помощь в решении задачи! Elusive Devil Помощь студентам 2 22.03.2009 16:17