Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kirill1059
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
#1

Сортировка массива по убыванию - C++

04.01.2014, 19:54. Просмотров 1176. Ответов 6
Метки нет (Все метки)

Добрый вечер.
Нужно отсортировать массив по убыванию. В гугле что то нашёл, но так как я ещё начинающий, то чужой код понимаю с трудом, тем более без комментариев.
Нужно отсортировать второй массив по убыванию, сам пробывал но ни чего почему то не получалось. Может что то не заметил)

Вот сам код

Нужно отсортировать второй массив по убыванию.

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
#include <iostream>
using namespace std;
 
int mas[100];
int mas1[100];
int main() {
    setlocale(LC_ALL, "Rus");
 
    int n, n1;
    int i, i1;
    int j, j1;
    
 
    cout << "Введите размер массива: ";
    cin >> n;
 
    for (i = 0; i < n; i++)
        cin >> mas[i];
 
    // Сортировка первого массива
    for (i = 0; i < n; i++)
        for (j = i + 1; j < n; j++)
            if (mas[j] < mas[i]) swap (mas[i], mas[j]);
 
    for (i = 0; i < n; i++)
 
    cout << mas[i] << ' ';
    cout << "\n";
 
    // Сортировка воторого массива
    cout << "Введите размер массива 2: ";
    cin >> n1;
 
    for (i1 = 0; i1 < n1; i1++)
        cin >> mas1[i1];
 
    for (i1 = 0; i1 < n1 - 1; i1++)
        for (j1 = i1 + 1; j1 < n1; j1++)
            if (mas1[j1] < mas1[i1]) swap (mas1[i1], mas1[j1]);
 
    for (i1 = 0; i1 > n1; i1--)
 
    cout << mas1[i1] << ' ';
    cout << "\n";
 
    system("pause");
    return 0;
}
Спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2014, 19:54     Сортировка массива по убыванию
Посмотрите здесь:

Сортировка массива по убыванию - C++
Отсортировать массив P={1,2,3,4,5,6,7,8,9,0} по убыванию методом вставок. Подскажите пожалуйста как это сделать в borland 3.11?

Сортировка массива по убыванию - C++
Дан массив целых чисел. Написать программу для сортировки массива по убыванию суммы цифр элементов. помогите пожалуйста, ни хрена не...

Сортировка массива по убыванию - C++
Здравствуйте. нужно отсортировать массив типа unsigned long по убыванию последним двум значениям (доп условие: если последние два...

Сортировка массива по убыванию - C++
добрый вечер, нужно исправить ошибки в алгоритме сортировки по убыванию. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using...

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

Сортировка массива по убыванию - C++
Помогите отсортировать массив по убыванию. #include &lt;iostream&gt; using namespace std; void main(){ setlocale (LC_ALL, &quot;Russian&quot;); ...

Сортировка массива по убыванию элементов - C++
Скажите пожалуйста, что не так, если не так, в этом коде) Задание: отсортировать массив по убыванию значений элементов в строках и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
04.01.2014, 20:00     Сортировка массива по убыванию #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int tmp;
bool flag;
do
{
    flag = true;
    for (int i=0; i<n1-1; i++)
        if (mas1[i+1]>mas1[i])
        {
            flag = false;
            tmp = mas1[i+1];
            mas1[i+1] = mas1[i];
            mas1[i] = tmp;
        }
}
while (!flag);
Genn55
366 / 213 / 41
Регистрация: 26.12.2012
Сообщений: 707
04.01.2014, 20:17     Сортировка массива по убыванию #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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
using namespace std;
 
int mas[100];
int mas1[100];
int main() {
    setlocale(LC_ALL, "Rus");
 
    int n, n1;
    int i, i1;
    int j, j1;
 
 
    cout << "Введите размер массива: ";
    cin >> n;
 
    for (i = 0; i < n; i++)
        cin >> mas[i];
 
    // Сортировка первого массива
    for (i = 0; i < n; i++)
        for (j = i + 1; j < n; j++)
            if (mas[j] < mas[i]) swap (mas[i], mas[j]);
 
    for (i = 0; i < n; i++)
 
    cout << mas[i] << ' ';
    cout << "\n";
 
    // Сортировка воторого массива
    cout << "Введите размер массива 2: ";
    cin >> n1;
        for (i1 = 0; i1 < n; i1++)
        cin >> mas[i1];
 
    for (i1 = 0; i1 < n1; i1++)
        for (j1 = i1 + 1; j1 < n1; j1++)
            if (mas[j1] > mas[i1]) swap (mas[i1], mas[j1]);
 
    for (i1 = 0; i1 < n; i1++)
 
    cout << mas[i1] << ' ';
    cout << "\n";
 
   // system("pause");
    return 0;
}
Хотя все это можно сделать получше.
kirill1059
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
04.01.2014, 23:01  [ТС]     Сортировка массива по убыванию #4
Genn55, спасибо большое)
главное так же всё делал первый раз и первый раз код написал так же как и вы мне его исправили, просто пытался что то переделать и забыл вернуть в исходное положение)
спасибо большое, всё нормально теперь)

Добавлено через 2 часа 16 минут
Genn55, А можно ли как нибудь содеинить эти два массива и отсортировать его по возрастанию?)
посмотрел примеры, но не понял, но кажется в этом коде не реально это сделать.
Genn55
366 / 213 / 41
Регистрация: 26.12.2012
Сообщений: 707
04.01.2014, 23:13     Сортировка массива по убыванию #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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//склеить 2 массива
#include <iostream>
#include <stdlib.h>
#include <cstring>
using namespace std;
//ФУНКЦИЯ ВВОДА ЭЛЕМЕНТОВ В МАССИВ
//ФУНКЦИЯ ЗАПОЛНЕНИЯ МАССИВА
void Fill(int *Arr,int N)
{
    for (int i=0;i<N;i++) Arr[i]=i;
}
//ФУНКЦИЯ ВЫВОДА МАССИВА НА ЭКРАН
void Show(int *Arr,int N)
{
    for (int i=0;i<N;i++) cout<<Arr[i]<<" ";
    cout<<endl;
}
int main()
{
system("chcp 1251 > nul");
   int N=3; //Размер первого массива
    int M=11; //Размер второго массива
   int *a=new int [N]; //Выделение памяти под первый массив
   int *b=new int [M]; //Выделение памяти под второй массив
   int *Arr=new int[N+M]; //Выделение памяти под итоговый массив
   Fill(a,N); //Заполнение первого массива
   Fill(b,M);//Заполнение второго массива
 
//ДВЕ СТРОЧКИ СКЛЕИВАЮТ ДВА МАССИВА В ИТОГОВОМ
     memcpy(Arr,a,N*sizeof(int)); //Копирование в итог данных из первого массива
      memcpy(Arr+N,b,M*sizeof(int)); //Копирование в конец итогового данных второго массива
     Show(a,N); //Отображаем первый массив
     Show(b,M); //Отображаем второй массив
     Show(Arr,N+M); //Отображаем склеенный массив
  delete []Arr; //Освобождения памяти
  delete []b;
  delete []a;
 return 0;
}
Можно и ваши склеить,но у вас будет много неипользованной памяти,а это не есть хорошо.
kirill1059
14 / 14 / 2
Регистрация: 16.04.2013
Сообщений: 370
04.01.2014, 23:24  [ТС]     Сортировка массива по убыванию #6
Genn55, Спасибо) но видимо пока для меня это ещё сложновато будет))) могу пока только отсортировать))) может потом как нибудь это пойму, когда опыта наберусь)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2014, 23:31     Сортировка массива по убыванию
Еще ссылки по теме:

Сортировка одномерного массива по убыванию - C++
Здравствуйте. Голова уже не варит, не могу понять, где ошибка моя. Задание: Используя memo, записать массив, отсортировать его по...

Челночная сортировка элементов массива по убыванию - C++
Есть пример сортировки по возрастанию, не пойму как сделать сортировку по убыванию

Массив: сортировка элементов массива по убыванию - C++
Привет всем с Казахстана) Хотелось бы от вас пару уроков взять про массивов. Сначала, пожалуй, начну с этого: Массив, состоящий из 15и...

Сортировка двумерного массива Методом Шелла (по убыванию) - C++
Необходимо написать код программы которая сортирует двумерный массив методом Шелла по убыванию. Я нашел код только для одномерного массива....

Сортировка массива по возрастанию или по убыванию, в зависимости от параметра - C++
Дан массив чисел размерностью 10 элементов. Написать программу, которая сортирует массив по возрастанию или по убыванию, в зависимости от...


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

Или воспользуйтесь поиском по форуму:
Sasha
4860 / 2334 / 234
Регистрация: 05.06.2008
Сообщений: 7,343
Записей в блоге: 3
04.01.2014, 23:31     Сортировка массива по убыванию #7
Цитата Сообщение от Genn55 Посмотреть сообщение
cout << "Введите размер массива 2: ";
* * cin >> n1;
* * * * for (i1 = 0; i1 < n; i1++)
* * * * cin >> mas[i1];
for (i1 = 0; i1 < n1; i1++)
* * * * for (j1 = i1 + 1; j1 < n1; j1++)
* * * * * * if (mas[j1] > mas[i1]) swap (mas[i1], mas[j1]);
for (i1 = 0; i1 < n; i1++)
cout << mas[i1] << ' ';
* * cout << "\n";
// system("pause");
Во втором массиве в коде опечатка надо так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    cout << "Ââåäèòå Г°Г*çìåð Г¬Г*Г±Г±ГЁГўГ* 2: ";
    cin >> n1;
        for (i1 = 0; i1 < n1; i1++)
        cin >> mas[i1];
 
    for (i1 = 0; i1 < n1; i1++)
        for (j1 = i1 + 1; j1 < n1; j1++)
            if (mas[j1] > mas[i1]) swap (mas[i1], mas[j1]);
 
    for (i1 = 0; i1 < n1; i1++)
 
    cout << mas[i1] << ' ';
    cout << "\n";
    getch();
вместо n надо ставить n1
Yandex
Объявления
04.01.2014, 23:31     Сортировка массива по убыванию
Ответ Создать тему
Опции темы

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