Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
2 / 1 / 1
Регистрация: 04.04.2020
Сообщений: 11
1

Отсортировать по убыванию только элементы массива, начинающиеся цифрой Z

16.07.2020, 10:13. Показов 1587. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, подскажите, пожалуйста, как сделать вторую часть задания. Я сделал сортировку, но если честно не знаю как сделать второе.
Вот код сортировки:

}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void Shella(int* A, int N)
{
       int i, j, count;
        int d = N;
       d = d / 2;
       while (d > 0)
       {
           for (i = 0; i < N - d; i++)
           {
               j = i;
               while (j >= 0 && *(A + j) > A[j + d])
               {
                   count = *(A + j);
                   *(A + j) = A[j + d];
                   A[j + d] = count;
                   j--;
               }
           }
           d = d / 2;
       }
       for (i = 0; i < N; i++) cout << *(A + i) << " ";
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2020, 10:13
Ответы с готовыми решениями:

Сортировка. Методом обмена отсортировать по убыванию только чётные элементы
методом обмена отсортировать по убыванию только чётные элементы. Огромная просьба помочь!!!!

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

Методом обмена отсортировать только те элементы, которые стоят на нечетных местах по убыванию
методом обмена отсортировать только те элементы, которые стоят на нечетных местах по убыванию

Элементы массива отсортировать по убыванию
Помогите написать программу. Есть два целочисленных массива A и B. Элементы массива B, нужно...

3
2528 / 1247 / 460
Регистрация: 08.11.2016
Сообщений: 3,428
16.07.2020, 10:29 2
1. Определить функцию
C++
1
2
3
4
5
6
7
size_t first(int n)
{
    n = abs(n);
    while(n > 10)
        n /= 10;
    return n;
}
1. Добавить в функцию void Shella(int* A, int N) параметр const size_t Z
2. в цикле while для определения нужно ли выполнять обмен значениями выполнить проверку
C++
1
if (Z == first(*(A + j)) && Z == first(A[j + d])) { // обмен значениями }
0
2 / 1 / 1
Регистрация: 04.04.2020
Сообщений: 11
16.07.2020, 10:45  [ТС] 3
Извините, не пойму строчку
C++
1
const size_t Z
между size_t и Z должна быть запятая?

Добавлено через 8 минут
К тому же мы нигде не указываем значение Z, поэтому в строчке
C++
1
if (Z == first(*(A + j)) && Z == first(A[j + d]))
Z будет пустым.
0
2528 / 1247 / 460
Регистрация: 08.11.2016
Сообщений: 3,428
16.07.2020, 11:05 4
Kipetosha, нет, модификатор const означает что параметр Z типа size_t (беззнаковый целый тип данных) не может быть изменен в ходе выполнения функции Shella - в данном случае это страхует от ошибки когда вместо оператора сравнения ==, в результате опечатки например, может быть указан оператор присваивания =, то есть если например организовать ветвление таким образом
C++
1
if (Z == first(*(A + j)) && Z = first(A[j + d]))
то, как видите, произойдет попытка присвоить переменной Z значение возвращаемое функцией first(A[j + d]), если в этом случае для Z не будет указан модификатор const то выполнится оператор присваивания и, если A[j + d] != 0 вернет ненулевое значение которое неявно приведется к типу bool со значением true, что нарушит логику ветвления, но при этом код скомпилируется. Если же для Z будет указан модификатор const, то ошибка будет отловлена на этапе компиляции, компилятор скажет:
Код
Z must be a modifiable lvalue
Добавлено через 7 минут
Цитата Сообщение от Kipetosha Посмотреть сообщение
К тому же мы нигде не указываем значение Z
Как это нигде не указываете? Значит надо указать чтобы, как Вы и просили
Цитата Сообщение от Kipetosha Посмотреть сообщение
сделать вторую часть задания
Которое, как я понял, состоит в том, чтобы сортировались
Цитата Сообщение от Kipetosha Посмотреть сообщение
только элементы массива, начинающиеся цифрой Z
А значит функция сортировки должна принимать эту Z как дополнительный параметр, соответственно Вы должны так или иначе задать эту Z, как её задать - решать вам: хотите запросите значение Z у пользователя, хотите задайте глобальной или локальной константой, читайте из файла и т.д. Соответственно при вызове функции сортировки вы должны передать ей эту Z.
1
16.07.2020, 11:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2020, 11:05
Помогаю со студенческими работами здесь

Отсортировать элементы массива по убыванию
В одномерном массиве, состоящем из N вещественных элементов, вычислить: Сортировать элементы...

Отсортировать элементы массива по убыванию
Отсортировать элементы массива по убыванию до последнего элемента, равного нулю.

Отсортировать элементы массива по убыванию
Помогите!( Организовать заполнение целочисленного одномерного массива B случайным образом....

Отсортировать элементы массива по убыванию
Целочисленный массив а(20) заполнен с клавиатуры. Элементы этого массива отсортировать по убыванию....

Отсортировать по убыванию положительные элементы массива
Отсортировать по убыванию положительные элементы массива.

Отсортировать нечетные элементы массива по убыванию
1. Отсортируйте в массиве нечетные элементы по убыванию.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru