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

Сортировка массива по возрастанию

01.12.2019, 22:35. Показов 2323. Ответов 6
Метки c++ (Все метки)

Вот мой код массива, мне нужно отсортировать его по возрастанию, (т.е от 0 до 40). Не очень понимаю как это сделать, если сможете показать уже отредактированный код, буду очень благодарен!

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
#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
    int X[40], Y[20];
    int n = 0;
    int k = 0;
 
    for (int i = 0; i < 40; i++)
    {
        X[i] = -25 + (rand() % 50);
        cout << "X[" << i << "]: " << X[i] << "\n";
    }
    for (int i = 0; i < 40; i++) 
{
        if (X[i] % 2 == 0)
        {
            Y[k] = X[i];
            k++;
        }
    }
 
    sort(Y, Y + 20);
    for (int i = 0; i < 20; i++) {
        if (Y[i] > 0)
            cout << "Y[" << i << "]: " << Y[i] << "\n";
    }   
    
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2019, 22:35
Ответы с готовыми решениями:

Сортировка массива: сначала положительные по возрастанию, потом отрицательные по возрастанию
Пользователь вводит массив чисел,нужно отсортировать его методом выбора,что бы сначала шли...

Сортировка массива по возрастанию
Я новичок в программировании, помогите пожалуйсто отсортировать массив по возрастанию. Нужен какой...

Сортировка массива по возрастанию
Код работает через раз, иногда всё норм, иногда дублирует некоторые элементы (чаще всего два...

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

6
7415 / 5011 / 2889
Регистрация: 18.12.2017
Сообщений: 15,694
01.12.2019, 23:05 2
напишите оригинал условия задачи
0
0 / 0 / 0
Регистрация: 30.11.2019
Сообщений: 13
01.12.2019, 23:09  [ТС] 3
Yetty, Массив Х содержит 40 действительных чисел. Переписать в массив Y положительные элементы массива Х с четными номерами и отсортировать его по возрастанию.
0
7415 / 5011 / 2889
Регистрация: 18.12.2017
Сообщений: 15,694
02.12.2019, 00:10 4
Лучший ответ Сообщение было отмечено vanskor38 как решение

Решение

Цитата Сообщение от vanskor38 Посмотреть сообщение
отсортировать его по возрастанию
я так понимаю его - это массив Y ?
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int p=0, m=0;
    const int n=40;
    double X[n];    
    
    cout << "Array X:\n";
    for (int i = 0; i < n; i++)
    {
        X[i]=0.1*(rand()%199-99);
        if (i%2==1 && X[i]>0.) p++;        
        cout << X[i] << "  ";
        if ((i+1)%20==0) cout << "\n";
    }    
    
        double*Y = new double[p];
    
    for (int i = 0; i < n; i++)            
        if (i%2==1 && X[i]>0.) Y[m++]=X[i];
        
    cout << "Array Y:\n";    
    for (int i = 0; i < p; i++)        
        cout << Y[i] << "  ";
    cout << "\n";  
    
    for (int i=0; i<p-1; i++)    
    for (int j=0; j<p-i-1; j++)        
      if (Y[j] > Y[j+1]) 
      swap(Y[j], Y[j+1]);
      
    cout << "Sorted array Y:\n";    
    for (int i = 0; i < p; i++)        
        cout << Y[i] << "  ";
    cout << "\n";  
    
    delete[]Y;
system("pause");
return 0;
}
если можно использовать вектор, сообщите, с вектором будет компактнее
0
0 / 0 / 0
Регистрация: 30.11.2019
Сообщений: 13
02.12.2019, 00:13  [ТС] 5
Спасибо вам большое, да, можно с вектором. Благодарю еще раз.
0
7415 / 5011 / 2889
Регистрация: 18.12.2017
Сообщений: 15,694
02.12.2019, 00:33 6
Лучший ответ Сообщение было отмечено vanskor38 как решение

Решение

Цитата Сообщение от vanskor38 Посмотреть сообщение
можно с вектором
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
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <vector>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));    
    const int n=40;
    double X[n];
    
    vector<double> Y;
    
    cout << "Array X:\n";
    for (int i = 0; i < n; i++)
    {
        X[i]=0.1*(rand()%199-99);
        if (i%2==1 && X[i]>0.) Y.push_back(X[i]);        
        cout << X[i] << "  ";
        if ((i+1)%20==0) cout << "\n";
    }   
        
    cout << "Array Y:\n";    
    for(double e : Y) {
        std::cout << e << "  ";
    }  
    
    sort(begin(Y), end(Y));
      
    cout << "\nSorted array Y:\n";    
    for(double e : Y) {
        std::cout << e << "  ";
    }      
    cout << "\n";
system("pause");
return 0;
}
Добавлено через 7 минут
обратите внимание: i%2==1. индексы идут так: 0,1,2... номера так: 1,2,3... (первый, второй, третий ...)
1
0 / 0 / 0
Регистрация: 30.11.2019
Сообщений: 13
02.12.2019, 00:34  [ТС] 7
да, я увидел. Благодарю!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2019, 00:34
Помогаю со студенческими работами здесь

Сортировка массива по возрастанию
Есть код , а как его отсортировать по возрастанию #include&lt;iostream&gt; #include&lt;ctime&gt; using...

Сортировка массива по возрастанию
Как реализовать сортировку по возрастанию в массиве?

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

Сортировка массива по возрастанию
помогите пожалуйста определить массив из 70 вещественных чисел x=i*sin(i/20), i=1,2,...,70....


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

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

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