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

Упорядочить вторую половину массива в порядке возрастания

17.04.2020, 06:47. Показов 3678. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан массив из N целых элементов (N=12)
a) Найти минимальный элемент массива и его порядковый номер
б) Упорядочить вторую половину в порядке возрастания, использую сортировку методом пузырька(первую половину не обрабатывать)

Если с пунктом а у меня нет вопросов, то с пунктом б проблемы. Помогите пожалуйста.

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
#include <iostream>
 
int main()
{
    const int n = 12;
    static float a[n];
    float min, k;
    int i, j;
    setlocale(LC_ALL, "Russian");
    printf("Введите %d чисел \n ", n);
    for (i = 0; i < n; i++) std::cin >> a[i];
    for (i = 0; i > n / 2; i++)
        if (a[i] > a[i + 1]) {
            k = a[i];
            a[i] = a[i + 1];
            a[i + 1] = k;
        }
    min = a[i];
    for (i = 1; i < n; i++)
        if (a[i] < min) min = a[i];
    printf("\nmin=%.3f", min);
    for (i = 0; i < n; i++)
        printf("%8.2f\n", a[i]);
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2020, 06:47
Ответы с готовыми решениями:

Упорядочить первую половину заданного массива по возрастанию, а вторую – по убыванию
Массив содержит четное количество элементов. Напишите программу, которая сортирует первую половину...

Отсортировать по возрастанию первую половину массива, и по убыванию вторую половину массива
Напишите программу, которая сортирует по возрастанию первую половину массива и по убыванию вторую...

Удалить первую половину элементов из динамического массива, вторую половину поставить на место первой
удалить первую половину елементов из динамического массива , а вторую половину вставить на место...

Упорядочить элементы массива в порядке возрастания
a={-1.3;-2;0;0.5;1.9} Дан линейный массив. Упорядочить его элементы в порядке возрастания.

6
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
17.04.2020, 09:22 2
Ну так почему ты первую половину упорядочиваешь?
0
0 / 0 / 0
Регистрация: 14.12.2019
Сообщений: 11
17.04.2020, 14:29  [ТС] 3
Он даже первую не упорядочивает)
+почему первую, если i должно быть больше 6 (n/2)?
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
17.04.2020, 14:35 4
От n/2 до конца сделай.
1
0 / 0 / 0
Регистрация: 14.12.2019
Сообщений: 11
17.04.2020, 14:46  [ТС] 5
До сих пор не работает
Она вроде упорядочивает, но как-то не так
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
#include <iostream>
 
int main()
{
    const int n = 12;
    static float a[n];
    float min, k;
    int i, j;
    setlocale(LC_ALL, "Russian");
    printf("Введите %d чисел \n ", n);
    for (i = 0; i < n; i++) std::cin >> a[i];
    for (i = n/2; i <= n; i++)
        if (a[i] > a[i + 1]) {
            k = a[i];
            a[i] = a[i + 1];
            a[i + 1] = k;
        }
    min = a[i];
    for (i = 1; i < n; i++)
        if (a[i] < min) min = a[i];
    printf("\nmin=%.3f", min);
    for (i = 0; i < n; i++)
        printf("%8.2f\n", a[i]);
}
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
17.04.2020, 14:58 6
Алгоритм сортировки откуда? В Решенных задачах посмотри как он должен выглядеть.
1
168 / 90 / 44
Регистрация: 22.09.2019
Сообщений: 399
17.04.2020, 15:02 7
Лучший ответ Сообщение было отмечено politebarista как решение

Решение

politebarista, поправил
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
#include <iostream>
 
int main()
{
    const int n = 12;
    static float a[n];
    float min, k;
    int i, j;
    setlocale(LC_ALL, "Russian");
    printf("Введите %d чисел \n ", n);
    for (i = 0; i < n; i++) std::cin >> a[i];
    for (int i = n / 2; i < n; i++) {
        for (int j = n / 2; j < n; j++) {
            if (a[j] > a[j + 1]) {
                // меняем элементы местами
                k = a[j];
                a[j] = a[j + 1];
                a[j + 1] = k;
            }
        }
    }
    min = a[0];
    for (i = 1; i < n; i++)
        if (a[i] < min) min = a[i];
    printf("\nmin=%.3f\n", min);
    for (i = 0; i < n; i++)
        printf("%8.2f\n", a[i]);
}
1
17.04.2020, 15:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2020, 15:02
Помогаю со студенческими работами здесь

Упорядочить элементы массива с четными индексами в порядке возрастания
Задан массив, содержащий N элементов. Упорядочить его элементы с четными индексами в порядке ...

Упорядочить строки массива в порядке возрастания значения элемента
делаю курсовик и по одному из последних заданий нужно написать алгоритм, который должен упорядочить...

Упорядочить первую половину массива по убыванию, а вторую половину – по возрастанию
Массив содержит 14 действительных чисел. Упорядочить первую половину массива по убыванию, а вторую...

Первую половину массива упорядочить по возрастанию, вторую - по убыванию
Создайте массив, состоящий из 20 различных целых чисел. После этого 10 первых упорядочить по...

Первую половину элементов массива упорядочить по убыванию, а вторую – по возрастанию
Из произвольного одномерного массива действительных чисел сформировать массив, в котором первую...

Отсортировать первую половину массива размера 2*n по убыванию, а вторую половину - по возрастанию
в одномерном массиве размерностью 2*n отсортируйте первую половину массива по убыванию, а вторую...


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

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