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

Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом - C++

Восстановить пароль Регистрация
 
Djhoodo
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 4
24.10.2013, 16:13     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом #1
Пожалуйста, помогите написать программу на С++

Программа Visual studio 2012 (Если важно)

Дана матрица (N+15)x(N+15) отсортировать четные столбцы в обратном порядке, а нечетные в прямом, числа генерировать случайно в интервале [-N-15; N+15]

Заранее большое спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2013, 16:13     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом
Посмотрите здесь:

Отсортировать нечетные столбцы массива по возрастанию суммы элементов этих столбцов C++
C++ Список: как сделать вывод не в обратном порядке а в прямом
C++ Отсортировать столбцы матрицы в порядке убывания сумм простых чисел столбцов
Вывести все четные числа массива в порядке возрастания их индексов, а затем все нечетные в порядке убывания C++
Четные и нечетные столбцы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ultrafight
13 / 13 / 5
Регистрация: 23.10.2013
Сообщений: 60
24.10.2013, 17:40     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом #2
щас поглядим

Добавлено через 4 минуты
прямой порядок - по возрастанию имеется в виду?
Djhoodo
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 4
24.10.2013, 17:40  [ТС]     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом #3
Массив я создал а вот как его отсортировать?
Вот код массива?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{const int n=22;
    int a[n][n];
    int b;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {a[i][j]=rand()%(n+1);
            if(rand()%2==0)
            {a[i][j]=a[i][j]*(-1);}}}
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            cout<<a[i][j]<<'\t';}
    cout<<endl;}
    system("pause");
    return 0;
}
Ultrafight
13 / 13 / 5
Регистрация: 23.10.2013
Сообщений: 60
24.10.2013, 17:42     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом #4
число N из файла считываем?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
24.10.2013, 17:42     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом #5
Цитата Сообщение от Djhoodo Посмотреть сообщение
а вот как его отсортировать?
Алгоритмы сортировок
Djhoodo
0 / 0 / 0
Регистрация: 24.10.2013
Сообщений: 4
24.10.2013, 17:44  [ТС]     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом #6
Вместо N 22
Алгоритмы сортировок как раз сижу читаю, но не могу въехать как подставить к себе.
Ultrafight
13 / 13 / 5
Регистрация: 23.10.2013
Сообщений: 60
24.10.2013, 18:59     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом #7
тебе любой тип сортировки? у тебя в коде написано const int n=22; у тебя n постоянно?

Добавлено через 1 минуту
пузырьковая сортировка пойдет?

Добавлено через 56 секунд
матрица 37х37 размером?

Добавлено через 3 минуты
тебе результат в файл? и сам процесс сортировки надо как-то отражать?

Добавлено через 1 час 8 минут
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <cstdlib>
#include <stdio.h>
#include <ctime>
 
using namespace std;
 
int main()
{
    int matrix_size=10;
    int matrix[matrix_size][matrix_size]; // матрица
    bool replace;    // необходимость перестановок (true - перестановки нужны)
    int per;         // переменная, которая используется при перестановки элементов
 
 
    // засеиваем ГСЧ
    srand(time(0));
 
    // заносим значения в матрицу
    for(int i=0; i<matrix_size; i++)
    {
        for(int j=0; j<matrix_size; j++)
        {
            matrix[i][j] = -37 + rand()%75;
        }
    }
 
    // вывод исходной матрицы
    printf("StArT mAtRiX:\n");
    for(int i=0; i<matrix_size; i++)
    {
        for(int j=0; j<matrix_size; j++)
        {
            printf("%3d", matrix[i][j]);
        }
        printf("\n");
    }
 
    for(int j=0; j<matrix_size; j++)
    {
        if(j%2==0) // столбец нечетный
        {
            replace=true;
            while(replace!=false)
            {
                replace=false;
                for(int i=0; i<matrix_size-1; i++)
                {
                    if(matrix[i][j]>matrix[i+1][j])
                    {
                        replace = true;
                        per = matrix[i][j];
                        matrix[i][j] = matrix[i+1][j];
                        matrix[i+1][j] = per;
                    }
                }
            }
        }
    }
 
    for(int j=0; j<matrix_size; j++)
    {
        if(j%2==1) // столбец четный
        {
            replace=true;
            while(replace!=false)
            {
                replace=false;
                for(int i=0; i<matrix_size-1; i++)
                {
                    if(matrix[i][j]<matrix[i+1][j])
                    {
                        replace = true;
                        per = matrix[i][j];
                        matrix[i][j] = matrix[i+1][j];
                        matrix[i+1][j] = per;
                    }
                }
            }
        }
    }
 
    // вывод измененной матрицы
    printf("\n\nReSuLt mAtRiX:\n");
    for(int i=0; i<matrix_size; i++)
    {
        for(int j=0; j<matrix_size; j++)
        {
            printf("%3d ", matrix[i][j]);
        }
        printf("\n");
    }
 
        getchar();
 
    return 0;
}
там я размер матрицы int matrix_size=10; поставил равным 10, если хочешь, можешь любой поставить (а то при 34х34 матрица не влезает в экран)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2016, 15:54     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом
Еще ссылки по теме:

C++ Переставить в строке все элементы матрицы из нечетных позиций на четные, а четные на нечетные, по условию
C++ Вывести все чётные числа между а и b в прямом и обратном порядке
Переставить в матрице четные и нечетные столбцы C++

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

Или воспользуйтесь поиском по форуму:
LoneProphet
0 / 0 / 0
Регистрация: 08.10.2016
Сообщений: 13
06.11.2016, 15:54     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом #8
А как сделать то же, только со строками?
Yandex
Объявления
06.11.2016, 15:54     Матрицы. Отсортировать четные столбцы в обратном порядке, а нечетные в прямом
Ответ Создать тему
Опции темы

Текущее время: 05:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru