0 / 0 / 0
Регистрация: 28.10.2017
Сообщений: 1
1

Шейкер, по убыванию, все чётные строки

16.12.2017, 10:18. Показов 460. Ответов 0

Выводит только начальный динамический массив, а отсортированный не хочет...
Подскажите, пожалуйста, в чём проблема?

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
#include <iostream>
#include <locale>
 
using namespace std;
 
int** input(int& massiveSizeX, int& massiveSizeY)                                       // Ввод массива
{
    cout << "Введите кол-во элементов массива x, y: ";
    cin >> massiveSizeX >> massiveSizeY;
    int** massive = new int*[massiveSizeX];
    for(int i = 0; i < massiveSizeX; i++)
    {
        massive[i] = new int[massiveSizeY];
        for(int j = 0; j < massiveSizeY; j++)
        {
            cout << "[" << i << "][" << j << "] = ";
            cin >> massive[i][j];
        }
    }
    return massive;
}
 
void sortStr(int* mass, int count)
{
    int left = 0, right = count - 1; 
    // левая и правая границы сортируемой области массива
    int flag = 1;  // флаг наличия перемещений
    // Выполнение цикла пока левая граница не сомкнётся с правой  
    // или пока в массиве имеются перемещения
    while ((left < right) && flag > 0)
    {
        flag = 0;
        for (int i = left; i<right; i++)  //двигаемся слева направо
        {
            if (mass[i]>mass[i + 1]) // если следующий элемент меньше текущего,
            {             // меняем их местами
                double t = mass[i];
                mass[i] = mass[i + 1];
                mass[i + 1] = t;
                flag = 1;      // перемещения в этом цикле были
            }
        }
        right--; // сдвигаем правую границу на предыдущий элемент
        for (int i = right; i>left; i--)  //двигаемся справа налево
        {
            if (mass[i - 1]>mass[i]) // если предыдущий элемент больше текущего,
            {            // меняем их местами
                double t = mass[i];
                mass[i] = mass[i - 1];
                mass[i - 1] = t;
                flag = 1;    // перемещения в этом цикле были
            }
        }
        left++; // сдвигаем левую границу на следующий элемент
    }
}
 
void sortMassive(int** massive, int massiveSizeX, int massiveSizeY)
{
    for(int i = 0; i < massiveSizeX; i+=2)
    {
        sortStr(massive[i], massiveSizeY);
    }
}
 
void printMassive(int** massive, int massiveSizeX, int massiveSizeY)                    // Выводит массив
{
    for(int i = 0; i < massiveSizeX; i++)
    {
        for(int j = 0; j < massiveSizeY; j++)
            cout << massive[i][j] << " ";
        cout << endl;
    }
    cout << endl;
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    int massiveSizeX = 0, massiveSizeY = 0;
    int** massive = input(massiveSizeX, massiveSizeY);
    sortMassive(massive, massiveSizeX, massiveSizeY);
    printMassive(massive, massiveSizeX, massiveSizeY);
 
    for(int i = 0; i < massiveSizeX; i++)
        delete[] massive[i];
    delete[] massive;
    system("PAUSE");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2017, 10:18
Ответы с готовыми решениями:

Как из строки удалить все нечетные слова, а все чётные вывести перевернутыми?
Подскажите пожалуйста, я не понимаю, как удалить нечётные слова из строки. Возможно, кто-то сможет...

Удалить из строки все чётные слова
нужно удалить с строки все чётные слова. Не могу написать...:cry:

Программа,удаляющая все чётные цифры из строки
Программа,удаляющая все чётные цифры из строки

Отсортировать чётные элементы по возрастанию, а нечётные по убыванию
Вот условие(могу кое где ошибаться в правильности постановки задачи) Составить одномерный массив,...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2017, 10:18

Отсортировать чётные столбцы матрицы по возрастанию, а нечётные – по убыванию
Нужно: Отсортировать чётные столбцы матрицы по возрастанию, а нечётные – по убыванию. ...

Вывести нечётные по значению элементы массива по возрастанию, а чётные - по убыванию
Создал программку вот такую: #include &lt;iostream&gt; #include&lt;iomanip&gt; #include &lt;time.h&gt; using...

Упорядочить нечётные элементы по убыванию, а чётные оставить на прежних местах
Здравствуйте , помогите решить задачу: Дан одномерный массив размером М. Упорядочить нечётные...

Отсортировать по убыванию все строки матрицы при помощи функции
Отсортировать по убыванию все строки матрицы при помощи функции Помогите....не понимаю как.... ...


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

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

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