Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.72
DavidBlaine
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 5
#1

Сортировка матрицы зигзагом - C++

15.01.2012, 20:02. Просмотров 2304. Ответов 10
Метки нет (Все метки)

Язык:С++
Программа:
дана матрица mass[a][b], размер генерируется случайным образом от 2 до 10;
матрица заполняется числами от 1 до 255;
метод сортировки - пузырьком;
программа учитывает варианты четного и нечетного размера исходной матрицы;
сортировка происходит в соответствии с заданной схемой (начало пути сортировки можно выбрать и право-верхний угол - как будет проше);
Название: mat.JPG
Просмотров: 363

Размер: 10.6 Кб
программа выводит на экран исходную матрицу, ниже через строку отсортированную.

P.S. Матрицу написал, случ. числами заполняется, сама проблема в сортировке зигзагом - её надо написать с помощью циклов и условий учитывая, что матрица может быть как квадратной, так и прямоугольной

Приму любую помощь. Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2012, 20:02     Сортировка матрицы зигзагом
Посмотрите здесь:

Заполнение матрицы зигзагом - C++
Здравствуйте, уже второй день пытаюсь решить вариант "Г" из этого задания. В интернете есть варианты решений, но мой уровень в знании C++...

сортировка матрицы - C++
Доброго времени суток. Задание: поменять в каждой строке максимальный и минимальный элементы на 0. Я думаю ошибка в функции void...

Сортировка матрицы - C++
Нужно написать программу, которая проводит сортировку элементов матрицы b Помогите

сортировка матрицы - C++
В матрице 5*10 упорядочить элементы в каждой строке по убыванию, а строки матрицы Расположить по возратанию элементов

сортировка матрицы - C++
как сортировать матрицу как спираль? то есть в центре мин элементы а по краям максимальные?...если можно сначала объясните по словам,если...

Сортировка матрицы - C++
все нулевые элементы размещены в левой части матрицы

Сортировка матрицы. - C++
Имеется матрица.Переставить столбцы матрицы в порядке убывания сумм элементов. SOS

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Oniablo
1 / 1 / 0
Регистрация: 26.12.2011
Сообщений: 10
15.01.2012, 23:04     Сортировка матрицы зигзагом #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <string>
using namespace std;
const int a=5, b=5;
 
void main () {
    int mass[a][b];     // объявление массива 5х5
for (int i=0; i<a; i++)
    for (int j=0; j<a; j++)
    {{
        mass[i][j]=1+rand()%256; // заполнение массива
    }}
 
    for (int i=0; i<a; i++)
    for (int j=0; j<a; j++)
    {{
        if (mass[i][j]>mass[i][j+1])
        {
            int b= mass[i][j+1];
            mass[i][j+1]=mass[i][j]; // сортировка пузырьком
            mass[i][j]=b;
        }
        }}
    system ("Pause");
}
Отсортировал по пузырьку, а про твой метод лучше его загуглить
DavidBlaine
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 5
16.01.2012, 00:08  [ТС]     Сортировка матрицы зигзагом #3
Oniablo, проверил твою программу, она сортирует строки, а мне надо отсортировать всю матрицу. Мне надо по крайней мере надо узнать, как все строки соединить, чтобы сортировалась вся матрица.
NoMasters
Псевдослучайный
1747 / 1090 / 71
Регистрация: 13.09.2011
Сообщений: 3,120
16.01.2012, 00:50     Сортировка матрицы зигзагом #4
Хорошая задача, мне понравилось. Один обход этим образом всех элементов:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    i = 0;
    j = 0;
    do
    {
        switch(way = way % 4)
        {
            case 0:
                if(i != a)
                    i++;
                else
                    j++;
                way++;
                break;
            case 1:
                i--;
                j++;
                if(i == 0 || j == b)
                    way++;
                break;
            case 2:
                if(j != b)
                    j++;
                else
                    i++;
                way++;
                break;
            case 3:
                i++;
                j--;
                if(j == 0 || i == a)
                    way++;
                break;
        }
    do_some(arr, i, j);
    }while(i != a || j != b);
При этом в a и b вертикальная/горизонтальная размерность - 1.

Добавлено через 2 минуты
Обращаю внимание на то, что для элемента (0, 0) do_some не вызывается(ТС оно и не нужно)
DavidBlaine
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 5
16.01.2012, 01:27  [ТС]     Сортировка матрицы зигзагом #5
NoMasters, мне на с++ нужно
NoMasters
Псевдослучайный
1747 / 1090 / 71
Регистрация: 13.09.2011
Сообщений: 3,120
16.01.2012, 01:41     Сортировка матрицы зигзагом #6
И что? Покажи мне тут что-либо несобирающиеся в плюсах.
DavidBlaine
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 5
16.01.2012, 10:39  [ТС]     Сортировка матрицы зигзагом #7
просто я новичок в программировании, я С в глаза не видел, пишу только в С++. Поэтому для меня проблематично её перевести, так к тому же без библиотек и объявл. переменных
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
16.01.2012, 11:03     Сортировка матрицы зигзагом #8
DavidBlaine

Данный псевдокод работает и на С++, ибо отличий между С и С++ не так много. Главное книги/маны читать
NoMasters
Псевдослучайный
1747 / 1090 / 71
Регистрация: 13.09.2011
Сообщений: 3,120
16.01.2012, 16:06     Сортировка матрицы зигзагом #9
Цитата Сообщение от Арсенал Посмотреть сообщение
псевдокод
Вполне себе кусок рабочего кода, только объявления опущены.
Забыл добавить, что перед начало обхода в way тоже должен быть нуль.
DavidBlaine
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 5
16.01.2012, 22:16  [ТС]     Сортировка матрицы зигзагом #10
что делает функция do_some?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2012, 00:38     Сортировка матрицы зигзагом
Еще ссылки по теме:

Сортировка матрицы - C++
Как преобразовать код чтобы матрица сортировалась снизу-вверх-вправо с конца главной диагонали? void matrixToArr(int matr,int nRow,...

Сортировка матрицы - C++
Здравствуйте, я уже голову сломал, но как сделать перестановку строк по убыванию значений максимальных элементов строк. Т.е. дана матрица...

Сортировка матрицы - C++
Подскажите пожалуйста, как отсортировать элементы матрицы по возрастанию?.. Добавлено через 9 минут Матрица представляет собой...

Сортировка матрицы - C++
Товарищи, подскажите пожалуйста, как можно решить это задание? (8 б.) В начале каждой строки частично заполненной матрицы А(m,n)...

Сортировка матрицы - C++
Дана:матрица чисел размером m x n, m – число строк, n – число столбцов.Выполнить сортировку (в порядке возрастания) по строкам всех...


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

Или воспользуйтесь поиском по форуму:
NoMasters
Псевдослучайный
1747 / 1090 / 71
Регистрация: 13.09.2011
Сообщений: 3,120
17.01.2012, 00:38     Сортировка матрицы зигзагом #11
У тебя должна менять по необходимости очередной элемент с предыдущим. Индексы предыдущей ячейки советую запоминать во имя отсутствия лишней мороки.
Yandex
Объявления
17.01.2012, 00:38     Сортировка матрицы зигзагом
Ответ Создать тему
Опции темы

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