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

Нужно отсортировать вторую половину массива, все работает, но не видит последний элемент масива, просто ставит ноль

21.06.2021, 18:45. Показов 403. Ответов 2

#include <iostream>
using namespace std;
int main()
{
int N;
cin » N;

int* a = new int[N];
for (int i = 0; i < N; i++)
{
cin » a[i];
}
for (int i = N/2; i < N; i++)
{
for (int j = N - 2 ; j >= i; j--)
{
if (a[j] > a[j + 1])
{
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}

for (int i = 0; i < N; i++)
{
cout « a[i] « " ";
}
return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2021, 18:45
Ответы с готовыми решениями:

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

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

Отсортировать по возрастанию вторую половину массива
Сортировать по возрастанию вторую половину массива используя void Что не то? #include...

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

2
583 / 487 / 370
Регистрация: 05.11.2013
Сообщений: 1,262
Записей в блоге: 6
21.06.2021, 19:14 2
проверьте индексы. когда j == N-1 (так как j >= i, а крайнее значение i == N -1, a[j + 1] даст выход за границу массива
0
7415 / 5011 / 2889
Регистрация: 18.12.2017
Сообщений: 15,694
21.06.2021, 20:46 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
24
25
26
27
28
29
30
31
#include <iostream> 
using namespace std; 
 
int main() 
{ 
    int N, temp; 
    cin >> N; 
 
    int* a = new int[N];
    
    for (int i = 0; i < N; i++)    
        cin >> a[i]; 
 
    for (int i = 0; i < N/2+1; i++)    
        for (int j = N/2; j < N-i-1; j++) 
        { 
            if (a[j] > a[j+1]) 
            { 
                temp=a[j]; 
                a[j]=a[j+1]; 
                a[j+1]=temp; 
            } 
        } 
 
    for (int i = 0; i < N; i++)    
        cout << a[i] << " "; 
    cout << "\n";
 
    delete[]a;
return 0; 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2021, 20:46
Помогаю со студенческими работами здесь

Отсортировать первую половину массива по возрастанию, а вторую по убыванию
Дан массив А(N), содержащий 10 различных целых чисел. Необходимо отсортировать первую половину...

Отсортировать первую половину массива по неубыванию, а вторую - но невозрастанию
3. Задан массив B. Отсортировать элементы с 1-го по 10-ый по неубыванию, а с 11-го по 20-й - по...

Отсортировать первую половину массива по возрастанию, а вторую - по убыванию
Массив из 20 целых чисел заполняется случайными числами от -100 до 100, отсортировать его первую...

Отсортировать первую половину массива по возрастанию, а вторую – по убыванию
1. Задан одномерный массив, содержащий четное количество элементов. Отсортировать первую половину...

Отсортировать первую половину массива по возрастанию, а вторую по убыванию
Программа не работает, помогите найти ошибку #include &lt;cstdlib&gt; #include &lt;iostream&gt; using...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru