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

Сортировка в операторе switch - C++

Восстановить пароль Регистрация
 
TRIPTIXX
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 18
19.05.2014, 22:40     Сортировка в операторе switch #1
Здравствуйте!
Никак не могу наладить сортировку в операторе для таблицы. Указывая поле сортировки - ничего не меняется. Помогите!
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
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
void main() { clrscr();
 
struct marka {
 char country[10];
 float SR, Max, M[4];
 int nom;};
marka *K;
marka x;
float MSR;
int nCountry, N, i, j, usl, p;
MSR=0; nCountry=0;
 
cout <<"\n input N:"; cin>>N;
K=new marka[N];
 
for (i=0;i<N;i++) {
cout<<"\n\n input name country ["<<i+1<<"]:"; cin>> K[i].country;
    K[i].SR=0; K[i].Max;
for(j=0;j<4;j++) {
cout<<"\n Input price mark's ["<<j+1<<"]="; cin >>K[i].M[j];
}}
for (i=0;i<N;i++) {
 for (j=0;j<4;j++){
  K[i].SR+=K[i].M[j];
   if (K[i].M[j]>K[i].Max) {K[i].Max=K[i].M[j]; K[i].nom=j+1;}
  }
K[i].SR/=6;
 if(K[i].SR>MSR) {MSR=K[i].SR; nCountry=i+1;}
  }
printf ("\n--------------------------------------");
printf ("\n|  Nom|Country| M-1 | M-2 | M-3 | M-4 | SR | Max|N |");
printf ("\n--------------------------------------");
for (i=0; i<N; i++) {
printf ("\n %5d|%7s|", i+1, K[i].country);
 for (j=0; j<4; j++) {printf ("%5.0f|", K[i].M[j]); }
printf ("%4.0f|%4.0f|%2d|", K[i].SR, K[i].Max, K[i].nom);
}
printf("\n---------------------------------------");
cout<<"\n \n MaxSredney="<<MSR;
cout<<"\n Nomer country:"<<nCountry;
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: usl=K[i].M[p-2] > K[j].M[p-2]; break;
    case 6: usl=K[i].SR>K[j].SR; break;
    case 7: usl=K[i].Max>K[j].Max; break;
    case 8: usl=K[i].nom>K[j].nom; break;
    }
if (p!=0){
  printf("\n--------------------------------------");
  printf ("\n|  Nom|Country| M-1 | M-2 | M-3 | M-4 | SR | Max|N |");
  printf("\n--------------------------------------");
 for (i=0; i<N; i++) {
  printf ("\n %5d|%6s|", i+1, K[i].country);
   for (j=0;j<4;j++) { printf("%5.0f|",K[i].M[j]);}
  printf ("%4.0f|%4.0f|%2d|", K[i].SR, K[i].Max, K[i].nom);
 }}
 }}
 while (p!=0);
cout<<("Press any key...");
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 22:40     Сортировка в операторе switch
Посмотрите здесь:

C++ Убрать предупреждения на break в операторе switch(...)
рекурсия в операторе C++
size_t в операторе for C++
Чудо-ошибка в операторе switch C++
C++ Может ли значение метки case в операторе switch быть числовым отрезком, или только константой?
Как в операторе switch вместо числового значения case поставить, например, слово? C++
В операторе switch всегда срабатывает default C++
C++ Сортировка массива структур через switch по любому полю

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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