С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 105, средняя оценка - 4.92
Oliga_19
5 / 5 / 0
Регистрация: 28.11.2009
Сообщений: 25
#1

Поменять местами две строки матрицы - C++

13.11.2010, 12:18. Просмотров 16607. Ответов 40
Метки нет (Все метки)

1 6 7
2 5 8
3 4 9.
Язык программирования Си.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2010, 12:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поменять местами две строки матрицы (C++):

Поменять местами две заданные строки матрицы - C++
С++. Дан двумерный числовой массив. Составить программу обмена местами заданных двух его строк.

Поменять местами две любые строки матрицы - C++
Дан двумерный массив. Составить программу, которая меняет местами две любые строки массива

Поменять местами две средние строки матрицы с первой и последней - C++
Ребят Добрый вечер помогите написать программу на с++, очень нужно у самого в с++ фактически нулевые знания. Буду очень очень...

Разработать функцию, позволяющую поменять местами две произвольные строки матрицы - C++
Имеется код: #include <iostream> #include <stdio.h> using namespace std; char **s = new char* , *t; int i, j, n; int main() {...

Двумерный массив: поменять местами две строки - C++
В матрице из целых положительных чисел поменять местами две строки: строка, которая содержит максимальный элемент матрицы, и строку,...

Двумерный массив: поменять местами две строки - C++
Нужно поменять местами две строки в массиве:строку, которая содержит максимальный элемент матрицы, и строку, содержащую минимальный ...

40
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.11.2010, 09:03 #31
volovzi, не буду переубеждать, но столкнетесь - вспомните
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
14.11.2010, 11:28 #32
M128K145, если ты так упрямо не хочешь признаваться, что написал плохой пример, то, может, спросим "зал"? Тут можно опросы делать?
0
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.11.2010, 11:51 #33
то, может, спросим "зал"? Тут можно опросы делать?
А смысл? Оба приведенных варианта обмена строк правильные и оба могут применяться к матрицам любых размеров и типов. Вариант с swap() более современный и проще в написании. Но и вариант который привел M128K145 тоже нужно знать - т.к. существуют близкие задачи к обмену двух строк, но swap() там уже не сможешь использовать, а подойдет немного переделанный вариант M128K145.
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
14.11.2010, 11:58 #34
Цитата Сообщение от valeriikozlov Посмотреть сообщение
А смысл? Оба приведенных варианта обмена строк правильные и оба могут применяться к матрицам любых размеров и типов. Вариант с swap() более современный и проще в написании. Но и вариант который привел M128K145 тоже нужно знать - т.к. существуют близкие задачи к обмену двух строк, но swap() там уже не сможешь использовать, а подойдет немного переделанный вариант M128K145.
Сортировка пузырьком — тоже "правильна" и может применяться к массиву любой размерности. Так почему же ей не пользуются?
Ничего современного в обмене указателей нет. Этот способ — ровесник языка Си.
0
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.11.2010, 12:22 #35
Сортировка пузырьком — тоже "правильна" и может применяться к массиву любой размерности. Так почему же ей не пользуются?
Почему не пользуются, я и сам иногда пользуюсь. Хотя обычно отдаю предпочтение другим сортировкам.
Например вот задача:
Дан массив размером N. Одним обменом называется обмен соседних элементов в массиве. Найдите минимальное кол-во обменов которое нужно совершить чтобы матрица стала упорядоченной по возрастанию.
По-моему для этой задачи как раз подойдет сортировка пузырьком.
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
14.11.2010, 12:32 #36
valeriikozlov, ага, принцип я понял.
Задача:
Дана матрица N x M. Обменом строк матрицы называется последовательный обмен соответствующих элементов строки.
Обменять строки под номерами i и j.

Я реально не понимаю, что вы так сопротивляетесь?
Своп указателей в данном случае лучше не только по скорости, но и с соображений семантики.
Цель — обменять строки. Пишем — swap(row1, row2), что с языка Си на русский переводится как обмен двух строк. Проще и понятнее не бывает.
Да, к сожалению, со столбцами так не получается, поэтому приходится городить циклы.
А вы тут целую теорию подвели под своё плохое решение.
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
14.11.2010, 12:42 #37
Цитата Сообщение от volovzi Посмотреть сообщение
Сортировка пузырьком — тоже "правильна" и может применяться к массиву любой размерности.
Опять же вопрос целесообразности. Какой смысл использовать тот же quickSort для массива в 10 элементов, если пузырек намного проще и эффективнее на таких наборах?

volovzi, вы имели опыт реальной разработки, или это то, что вам рассказывают в ВУЗе на лекциях? А то что вы назвали "теорией" - это реальность, с которой вы столкнетесь
0
valeriikozlov
Эксперт С++
4676 / 2502 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.11.2010, 12:46 #38
Своп указателей в данном случае лучше не только по скорости, но и с соображений семантики.
Я об этом не спорю, наоборот уже писал, что в этих случаях swap() лучше.
Но остаюсь при своем мнении что вариант M128K145 тоже нужный (в других близких задачах лучше будет этот вариант).
А вы тут целую теорию подвели под своё плохое решение.
Я еще никаких решений не выдавал по этому вопросу.
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
14.11.2010, 12:54 #39
M128K145, предложение спросить народ в силе.

Цитата Сообщение от valeriikozlov Посмотреть сообщение
Я об этом не спорю, наоборот уже писал, что в этих случаях swap() лучше.
Но остаюсь при своем мнении что вариант M128K145 тоже нужный (в других близких задачах лучше будет этот вариант).
Никаких "близких" задач здесь не рассматривалось. Речь шла о конкретной задаче. Такой вариант обмена строк динамического массива на языке Си или Си++ плох (устал объяснять, почему), а потому не нужен.
0
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
09.11.2013, 17:52 #40
Познавательно

Добавлено через 1 минуту
Правда поэлементный обмен в динамическом массиве не прокатывает, странно.
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
11.11.2013, 09:51 #41
Цитата Сообщение от Super GT Посмотреть сообщение
Правда поэлементный обмен в динамическом массиве не прокатывает, странно.
И правда, странно. Потому что "прокатывает" на самом деле. Видимо, вы что-то делаете неправильно.
0
11.11.2013, 09:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2013, 09:51
Привет! Вот еще темы с ответами:

В матрице поменять местами две строки с заданными номерами - C++
2)Из элементов полученной матрицы, которые лежат на главной диагонали и под ней, сформировать нижнюю треугольную матрицу С; 3)Из...

Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива - C++
Разработать функцию, позволяющую поменять местами две произвольные строки двухмерного массива. Ввести массив. Поменять два раза по две...

Поменять местами максимальный элемент каждой строки матрицы с первым элементом строки - C++
Написать функцию, которая меняет местами максимальный элемент каждой строки матрицы С(5,5) с первым элементом соответствующей строки.

Обменять местами две заданные строки матрицы - C++
Написать на С++. Дан двумерный числовой массив. Составить программу обмена местами заданных двух его строк.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.