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

Структура (вывести время вылета по возрастанию) - C++

Восстановить пароль Регистрация
 
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
06.12.2012, 12:05     Структура (вывести время вылета по возрастанию) #1
Всем привет. Люди добрые помогите вывести время вылета по возростанию моя переменная (vv)
C++ (Qt)
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
#include <iostream.h>
#include <string.h>
 
    struct aerop{
int nr;
char ts[15];
char pn[30];
double vv;
} mas[100];
 
int main ()
{
 
 
int i,n;
char pn2[20];
 
cout<<"vvedite kol. samoletov"<<endl;
cin>>n;
 
for (i=0;i<n;i++)
{
cout<<"vvedite nomer reisa"<<endl;
cin>>mas[i].nr;
 
 
cout<<"vvedite tip samoleta"<<endl;
cin>>mas[i].ts;
 
cout<<"vvedite punkt naznachenia"<<endl;
cin>>mas[i].pn;
 
cout<<"vvedite vremia vileta"<<endl;
cin>>mas[i].vv;
}
 
 
/*просто вывод
for (i=0;i<n;i++)
{
cout<<mas[i].nr<<" "<<mas[i].ts<<" "<<mas[i].pn<<" "<<mas[i].vv<<endl;
}
 
*/
 
 
cout<<"vvedite  punkt naznachenia   ";
cin>>pn2;
 
 
for (i=0;i<n;i++)
{
if (strcmp (pn2,mas[i].pn)) 
 
cout<<mas[i].nr<<" "<<mas[i].ts<<" "<<mas[i].vv<<endl;
}
 
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
06.12.2012, 12:36     Структура (вывести время вылета по возрастанию) #2
ну, тебе просто надо отсортировать структуры по времени, а потом выводить. Можно выводить по совпадению с местом прилета и т.д.
Примитивнейшим способом сортировки, упорядочиваем наш массив структур, выстраивая последние по возрастанию
C++
1
2
3
4
5
6
7
8
for(int i = 0; i < n-1; i++) {
    for(int j = i+1; j < n; j++)
        if(mas[i].vv > mas[j].vv) {
            double tmp = mas[j].vv;
            mas[j].vv = mas[i].vv;
            mas[i].vv = tmp;
        }
}
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
06.12.2012, 12:56  [ТС]     Структура (вывести время вылета по возрастанию) #3
Вот попрбовал, но по возрастанию не выводит или я не туда поставил(((

C++ (Qt)
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
cout<<"vvedite  punkt naznachenia   ";
cin>>pn2;
 
 
 
 
for (i=0;i<n;i++)
{
if (strcmp (pn2,mas[i].pn)) 
 
{
 
///////////////////////////////
for(i = 0; i < n-1; i++) {
    for(int j = i+1; j < n; j++)
        if(mas[i].vv > mas[j].vv) {
            double tmp = mas[j].vv;
            mas[j].vv = mas[i].vv;
            mas[i].vv = tmp;
        }
}
//////////////////////////////
 
}
 
 
 
cout<<mas[i].nr<<" "<<mas[i].ts<<" "<<mas[i].vv<<endl;
}
 
 
return 0;
}
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
06.12.2012, 13:02     Структура (вывести время вылета по возрастанию) #4
не... ты поставь это сразу после заполнения структур, например, или перед строчкой
C++
1
cout<<"vvedite  punkt naznachenia   ";
Добавлено через 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
#include <iostream.h>
#include <string.h>
 
    struct aerop{
int nr;
char ts[15];
char pn[30];
double vv;
} mas[100];
 
int main ()
{
 
 
int i,n;
char pn2[20];
 
cout<<"vvedite kol. samoletov"<<endl;
cin>>n;
 
for (i=0;i<n;i++)
{
cout<<"vvedite nomer reisa"<<endl;
cin>>mas[i].nr;
 
 
cout<<"vvedite tip samoleta"<<endl;
cin>>mas[i].ts;
 
cout<<"vvedite punkt naznachenia"<<endl;
cin>>mas[i].pn;
 
cout<<"vvedite vremia vileta"<<endl;
cin>>mas[i].vv;
}
 
 
/*просто вывод
for (i=0;i<n;i++)
{
cout<<mas[i].nr<<" "<<mas[i].ts<<" "<<mas[i].pn<<" "<<mas[i].vv<<endl;
}
 
*/
 for(i = 0; i < n-1; i++) {
    for(int j = i+1; j < n; j++)
        if(mas[i].vv > mas[j].vv) {
            double tmp = mas[j].vv;
            mas[j].vv = mas[i].vv;
            mas[i].vv = tmp;
        }
}
 
cout<<"vvedite  punkt naznachenia   ";
cin>>pn2;
 
 
for (i=0;i<n;i++)
{
if (strcmp (pn2,mas[i].pn)) 
 
cout<<mas[i].nr<<" "<<mas[i].ts<<" "<<mas[i].vv<<endl;
}
 
return 0;
}
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
06.12.2012, 13:44  [ТС]     Структура (вывести время вылета по возрастанию) #5
чета вообще никакой реакции после ввода пункта назначения, просто просит нажать энтер
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
06.12.2012, 14:02     Структура (вывести время вылета по возрастанию) #6
Не знаю, что там у тебя не так... единственное strcmp возвращает нулевое значение при равенстве двух строк, надо поправить
У меня такой результат
[IMG]http://i.***********/i7/b63c18120971e508525462c9a7421a1d/4-50-72/35107629/Bezymiannyi.jpg[/IMG][IMG]http://i.***********/a3/2012-12-06-10-00/i7-3813342/338x500-r/i.gif[/IMG]
shilovec5377
 Аватар для shilovec5377
28 / 53 / 1
Регистрация: 26.05.2011
Сообщений: 752
06.12.2012, 14:03  [ТС]     Структура (вывести время вылета по возрастанию) #7
Вы такойже код вставили как и у меня:
C++ (Qt)
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
76
77
78
79
80
81
#include <iostream.h>
#include <string.h>
 
    struct aerop{
int nr;
char ts[15];
char pn[30];
double vv;
} mas[100];
 
int main ()
{
 
 
int i,n;
char pn2[20];
 
cout<<"vvedite kol. samoletov"<<endl;
cin>>n;
 
for (i=0;i<n;i++)
{
cout<<"vvedite nomer reisa"<<endl;
cin>>mas[i].nr;
 
 
cout<<"vvedite tip samoleta"<<endl;
cin>>mas[i].ts;
 
cout<<"vvedite punkt naznachenia"<<endl;
cin>>mas[i].pn;
 
cout<<"vvedite vremia vileta"<<endl;
cin>>mas[i].vv;
}
 
 
/*просто вывод
for (i=0;i<n;i++)
{
cout<<mas[i].nr<<" "<<mas[i].ts<<" "<<mas[i].pn<<" "<<mas[i].vv<<endl;
}
 
*/
 
 
 
///////////////////////////////
for(i = 0; i < n-1; i++) {
    for(int j = i+1; j < n; j++)
        if(mas[i].vv > mas[j].vv) {
            double tmp = mas[j].vv;
            mas[j].vv = mas[i].vv;
            mas[i].vv = tmp;
        }
}
//////////////////////////////
 
 
 
 
 
cout<<"vvedite  punkt naznachenia   ";
cin>>pn2;
 
 
 
 
for (i=0;i<n;i++)
{
if (strcmp (pn2,mas[i].pn)) 
 
 
 
 
cout<<mas[i].nr<<" "<<mas[i].ts<<" "<<mas[i].vv<<endl;
}
 
 
return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2012, 14:08     Структура (вывести время вылета по возрастанию)
Еще ссылки по теме:

Непонятная причина вылета программы C++
C++ Структура Trains, вывести все сведения о поездах, время пребывания в пути которых превышает 7 часов 10 мин
C++ Структура "Время". Функции преобразования в секунды и из секунд

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

Или воспользуйтесь поиском по форуму:
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
06.12.2012, 14:08     Структура (вывести время вылета по возрастанию) #8
да, за исколючением 71 строчки...
C++
1
if (strcmp (pn2,mas[i].pn))
замени на
C++
1
if (strcmp (pn2,mas[i].pn) == 0)
Yandex
Объявления
06.12.2012, 14:08     Структура (вывести время вылета по возрастанию)
Ответ Создать тему

Метки
рўс‚сђсѓрєс‚сѓсђр°, структура
Опции темы

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