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

Выбор сортировки - C++

Восстановить пароль Регистрация
 
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
23.09.2010, 21:54     Выбор сортировки #1
Вообщем надо написать программу,которая при вводе определенного символа сортирует по возрастанию или убыванию,все это в консоли.вид сортировки не имеет значения.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2010, 21:54     Выбор сортировки
Посмотрите здесь:

C++ сортировки
C++ Выбор оптимального алгоритма сортировки.
Сортировки C++
C++ Выбор алгоритма сортировки
C++ Выбор элемента из сортировки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
23.09.2010, 21:57     Выбор сортировки #2
ну а в чем проблемы? создаете 2 функции, одна сортирует по возрастанию, другая по убыванию и с помощью switch выбираете нужную функцию и сортируем
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
23.09.2010, 22:06  [ТС]     Выбор сортировки #3
Код можно какой-нибудь похожий?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
23.09.2010, 22:12     Выбор сортировки #4
Тут масив заполняетсо рандомными числами,думаю переделать под свои нужды не составит труда.
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>
#include<conio.h>
#include<ctime>
using namespace std;
int main()
{
        const int n = 10;
        int m[n]; 
        srand(time(0));
        cout << "Do" << endl;
        for(int i = 0; i < n; i ++)
        {
             m[i] = rand()%700;
             cout << m[i] << ",";   
        }
        for(int i = n - 1; i >= 1; i--)
          for(int j = 0; j < i; j++)
          {
                  
                  if(m[j] > m[j+1])
                  {
                  int foo = m[j];
                  m[j] = m[j+1];
                  m[j+1] = foo;
                  }
          }
        cout << endl;
        cout << "After(>)" << endl;
        for(int i = 0; i < n; i++)
        cout << m[i] << ",";
        for(int i = n - 1; i >= 1; i--)
          for(int j = 0; j < i; j++)
          {
                  
                  if(m[j] < m[j+1])
                  {
                  int foo = m[j];
                  m[j] = m[j+1];
                  m[j+1] = foo;
                  }
          }
        cout << endl;
        cout << "After(<)" << endl;
        for(int i = 0; i < n; i++)
        cout << m[i] << ",";
        getch();
        return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
23.09.2010, 22:33     Выбор сортировки #5
Цитата Сообщение от REALIST07 Посмотреть сообщение
надо написать программу,которая при вводе определенного символа сортирует по возрастанию или убыванию,все это в консоли.вид сортировки не имеет значения.
Чего-то я не понял... Один символ сортировать по возрастанию/убыванию? О_о
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
23.09.2010, 22:42     Выбор сортировки #6
Цитата Сообщение от easybudda Посмотреть сообщение
Один символ сортировать по возрастанию
другой символ сортировать по убыванию
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
23.09.2010, 22:53  [ТС]     Выбор сортировки #7
нет вот что я имею ввиду
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
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
using namespace std;
 
void main()
{setlocale(LC_ALL,"Russian");
    cout<<"Программа,сортирующая массив в порядке возрастания или убывания"<<endl;
 char s,p,t;int i;
  do{//Для ввода своего значения
    int*a;
    int n=0;
    cout<<"Введите размерность массива:";
    cin>>n;
    a=new int[n];
      for (i=0;i<n;i++)
      {cout<<"a["<<i<<"]=";
       cin>>a[i]; }
 
     do{
             cout<<"Как будем сортировать?(Если по возрастанию,то жмем(+),по убыванию,то(-):";
             cin>>s;
            if (s == '+') 
                             {           for( i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] > a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По возрастанию:"<<endl;
                                                                              for( i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;
 
                             }
                                    
            else if (s == '-')  {           for( i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] < a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По убыванию:"<<endl;
                                                                              for( i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;} 
            
            cout<<"С этим массивом будем работать?(y/n):";
            cin>>t;                        
     }while(t =='y');                 
            cout<<"Хотите продолжить?(y/n):";
             cin>>p;
              }while (p == 'y');
    }
Добавлено через 1 минуту
У меня вопрос как вынести вот этот код как функцию,помогите
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  for( i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] < a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По убыванию:"<<endl;
                                                                              for( i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;}
Добавлено через 27 секунд
чтобы столько раз не писать такой огромный код
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
23.09.2010, 23:16     Выбор сортировки #8
REALIST07, в соседней теме с функцией, сортирующей по возрастанию: Re: Сортировка массива в СИ
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
23.09.2010, 23:22  [ТС]     Выбор сортировки #9
easybudda ,спасибо за информацию,но мне желательно под мой код функцию,потому что он для меня понятен
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2010, 01:45     Выбор сортировки
Еще ссылки по теме:

C++ Составить программы для пузырьковой сортировки и сортировки посредством выбора с применением оператора while
C++ Сделать так, чтобы после сортировки вектора указатель показывал на тот же элемент, что и до сортировки
C++ Сортировки: пять методов на выбор в одной программе

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

Или воспользуйтесь поиском по форуму:
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
24.09.2010, 01:45     Выбор сортировки #10
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
using namespace std;
 
void funcplus(int a[],int n)
{
 for( int i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] > a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По возрастанию:"<<endl;
                                                                              for( int i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;
}
void funcminus(int a[], int n)
{
 for( int i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] < a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По убыванию:"<<endl;
                                                                              for( int i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;
} 
 
void main()
{setlocale(LC_ALL,"Russian");
    cout<<"Программа,сортирующая массив в порядке возрастания или убывания"<<endl;
 char s,p,t;
  do{//Для ввода своего значения
    int*a;
    int n=0;
    cout<<"Введите размерность массива:";
    cin>>n;
    a=new int[n];
      for (int i=0;i<n;i++)
      {cout<<"a["<<i<<"]=";
       cin>>a[i]; }
 
     do{
             cout<<"Как будем сортировать?(Если по возрастанию,то жмем(+),по убыванию,то(-):";
             cin>>s;
            if (s == '+') 
            funcplus(a,n);
                                    
            else if (s == '-')  
            funcminus(a,n);
            
            cout<<"С этим массивом будем работать?(y/n):";
            cin>>t;                        
     }while(t =='y');                 
            cout<<"Хотите продолжить?(y/n):";
             cin>>p;
              }while (p == 'y');
    }
Yandex
Объявления
24.09.2010, 01:45     Выбор сортировки
Ответ Создать тему
Опции темы

Текущее время: 15:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru