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

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

Войти
Регистрация
Восстановить пароль
 
TRIPTIXX
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 18
#1

Реализовать сортировку по возрастанию и убыванию - C++

19.05.2014, 20:09. Просмотров 344. Ответов 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
void main(){ clrscr();
 
  struct Kurs{
    char Strana[15];
    float SR, max, C[6];
    int nom;  };
 
    Kurs *M;
    Kurs x;
    float  MSR;
    int Nstrana, N, i, j, usl, p;
    MSR=0; Nstrana=0;
 
    cout <<"\n input N:"; cin >> N;
    M = new Kurs[N];
 
    for (i=0; i<N; i++){
    cout <<"\n \n input name Strani ["<<i+1<<"]: "; cin >> M[i].Strana;
         M[i].SR=0; M[i].max=0;
    for (j=0; j<6; j++) {
    cout << "\n Input God ["<<j+1<<"]="; cin>> M[i].C[j];
    }}
 
    for (i=0; i<N; i++) {
      for (j=0; j<6; j++){
    M[i].SR+=M[i].C[j];
    if (M[i].C[j]>M[i].max) {M[i].max=M[i].C[j]; M[i].nom=j+1;}
    }
      M[i].SR/=6;
      if (M[i].SR>MSR) {MSR=M[i].SR; Nstrana=i+1;}
    }
 
    printf ("\n --------------------------------------------------------------------------");
    printf("\n| Nom | Strana | 1-i | 2-i | 3-i | 4-i | 5-i | 6-i | SR | Max | N |");
    printf("\n----------------------------------------------------------------------------");
 
    for (i=0; i<N; i++) {
     printf ("\n %5d| %7s|", i+1, M[i].Strana);
     for (j=0; j<6; j++) {  printf ("%5.0f|", M[i].C[j]);  }
    printf ("%4.0f| %4.0f| %2d|", M[i].SR, M[i].max, M[i].nom);
     }
    printf("\n---------------------------------------------------------------------");
    cout << " \n \n MaxSredni=" << MSR;
    cout << " \n Nomer:" << Nstrana;
    printf("\n---------------------------------------------------------------------");
 
    do {
    cout <<("\n \n Input pole sortirovki: "); cin>> p;
    for (i=0; i<N; i++)
    for (j=i+1; j<N; j++) {
      switch(p) {
        case 2: case 3: case 4: case 5: case 6: case 7: usl= M[i].C[p-2] > M[j].C[p-2]; break;
        case 8: usl=M[i].SR>M[j].SR; break;
        case 9: usl=M[i].max>M[j].max; break;
        case 10: usl=M[i].nom>M[j].nom; break;
      }
    if (usl) {x=M[i]; M[i]=M[j]; M[j]=x;}
    }
    if (p!=0){
    printf ("\n--------------------------------------------------------------------");
    printf("\n| Nom | Strana | 1-i | 2-i | 3-i | 4-i | 5-i | 6-i | SR | Max | N |");
    printf("\n--------------------------------------------------------------------");
 
    for (i=0; i<N; i++) {
     printf ("\n %5d| %6s|", i+1, M[i].Strana);
     for (j=0; j<4; j++) {  printf ("%5.0f|", M[i].C[j]);  }
    printf ("%4.0f| %4.0f| %2d|", M[i].SR, M[i].max, M[i].nom);
     }}
    } while (p!=0);
    cout<< ("Press to Key...");
    getch();
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 20:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать сортировку по возрастанию и убыванию (C++):

Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь - C++
#include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; using namespace std; template &lt;class T&gt; void sort(T ar,T size,T...

Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных строках. - C++
Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных...

Реализовать сортировку массива структур типа "Сотрудник" по убыванию стажа - C++
Здравствуйте, уважаемые форумчане! Задача: Информация о сотрудниках предприятия содержит ФИО, номер отдела, должность, дату начала...

Выполнить сортировку по убыванию. Пирамидальная сортировка - C++
Выполнить сортировку по убыванию. Пирамидальная сортировка и сортировка слияния. Размерность массива меняется от 10 до 100 шагом 10. Массив...

Найти сортировку по возрастанию - C++
Дан одномерный Массив. Найти сортировку по возрастанию. Подскажите где можно писать задачу что бы на неё ответили? Надо задачи...

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

3
zss
Модератор
Эксперт С++
6403 / 5969 / 1945
Регистрация: 18.12.2011
Сообщений: 15,370
Завершенные тесты: 1
19.05.2014, 20:25 #2
60 строка.
Цитата Сообщение от TRIPTIXX Посмотреть сообщение
if (usl) {x=M[i]; M[i]=M[j]; M[j]=x;}
Завести переменную direction, которая определяет направление сортировки
(например, равную 1 - по возрастанию и -1 - по убыванию).
Тогда.
C++
1
if (direction==1 && usl  || direction==-1 && !usl   ) {x=M[i]; M[i]=M[j]; M[j]=x;}
0
TRIPTIXX
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 18
19.05.2014, 22:49  [ТС] #3
Завести переменную direction, которая определяет направление сортировки
(например, равную 1 - по возрастанию и -1 - по убыванию).
Тогда.
C++
1
if (direction==1 && usl  || direction==-1 && !usl   ) {x=M[i]; M[i]=M[j]; M[j]=x;}
[/QUOTE]
То есть в этом коде мы сами указываем (написав нужное значение либо 1 либо -1) по возрастанию или убыванию. или все же полностью переписываем вашу строчку?
0
zss
Модератор
Эксперт С++
6403 / 5969 / 1945
Регистрация: 18.12.2011
Сообщений: 15,370
Завершенные тесты: 1
20.05.2014, 06:47 #4
Цитата Сообщение от TRIPTIXX Посмотреть сообщение
Завести переменную direction
Цитата Сообщение от TRIPTIXX Посмотреть сообщение
То есть в этом коде мы сами указываем
Можем direction либо присвоить значение
C++
1
int direction=1;
либо ввести
C++
1
2
cout>>"введите 1 для сотрировки по возрастанию\n, или -1 для сортировки по убыванию";  
int direction;cin>>direction;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2014, 06:47
Привет! Вот еще темы с ответами:

В одномерном массиве произвести сортировку элементов по убыванию - C++
В одномерном массиве произвести сортировку элементов по убыванию, используя один из алгоритмов быстрой сортировки. Необходимо сделать...

В одномерном массиве произвести сортировку элементов по убыванию - C++
Помогите пожалуйста сыплюсь на экзамене! Только проще, пол года си занимаюсь.

Для 10 сотрудников отдела: выполнить сортировку по убыванию номеров телефонов - C++
Дали очень красноречивое задание: Кто может это сделать? О_о

Выполнить сортировку каждого столбца матрицы по возрастанию - C++
Требуетса помощ в решении задачи:( 1.Разработать программу со строковым меню для работы с порядка NxM .В меню предусматреть следующие...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
20.05.2014, 06:47
Ответ Создать тему
Опции темы

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