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

Структура, последующий вывод. - C++

Восстановить пароль Регистрация
 
The1Phoenix
2 / 2 / 0
Регистрация: 28.03.2012
Сообщений: 76
10.04.2012, 18:12     Структура, последующий вывод. #1
Помогите вывести на экран информацию о поездах, отпарвляющиеся после того времени, которое было введено с клавиатуры,если нет таковых - вывести соответсвтующее сообщение.
Закомментирован мой код программы, выводящий хотя бы по последующим часам, но он не верен..
Вот код программы, с произведенной сортировкой по времени, размерность массива структуры 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
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
#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <conio.h>
 
struct train {
char punkt[20];
int num;
int h; 
int m;
} mtr[4];
 
int main(void) {
SetConsoleCP(1251); 
SetConsoleOutputCP(1251);
struct train x;
int n,i,k,j,q;
 
 
for (n=0; n<4; n++){
printf("%d. Введите: пункт назначения, номер поезда, время отправления(часы и минуты написать через пробел) >", n+1);
scanf("%s",mtr[n].punkt);
if (!strcmp(mtr[n].punkt,"***")) break;
scanf("%d",&mtr[n].num);
scanf("%d",&mtr[n].h);
scanf("%d",&mtr[n].m);} 
 
printf("------------------------------------------\n");
printf("|           Расписание поездов           |\n");
printf("|----------------------------------------|\n");
printf("|      Пункт      | Номер  |    Время    |\n");
printf("|   отправления   | Поезда | отправления |\n");
printf("|-----------------|--------|-------------|\n");
for (i=0; i<n; i++)
printf("| %15s | %6d | %5.2d-%.2d    |\n",
mtr[i].punkt,mtr[i].num,mtr[i].h,mtr[i].m);
printf("------------------------------------------\n");
 
// сортировка
for (i=0; i<n-1; i++) {q=i;
for (j=i+1; j<n; j++)
    if (mtr[q].m > mtr[j].m) q=j;
if (q>i) { x=mtr[i];
mtr[i]=mtr[q];
mtr[q]=x;}}
 
for (i=0; i<n-1; i++) {q=i;
for (j=i+1; j<n; j++)
    if (mtr[q].h > mtr[j].h) q=j;
if (q>i) { x=mtr[i];
mtr[i]=mtr[q];
mtr[q]=x;}}
 
 
 
printf("------------------------------------------\n");
printf("|           Расписание поездов           |\n");
printf("|----------------------------------------|\n");
printf("|      Пункт      | Номер  |    Время    |\n");
printf("|   отправления   | Поезда | отправления |\n");
printf("|-----------------|--------|-------------|\n");
for (i=0; i<n; i++)
printf("| %15s | %6d | %5.2d-%.2d    |\n",
mtr[i].punkt,mtr[i].num,mtr[i].h,mtr[i].m);
printf("------------------------------------------\n");
 
//printf("Введите время:\n");
//scanf("%d",&k);
//for (i=0; i<n; i++){
//if (mtr[n].h>=k)
//printf("| %15s | %6d | %5.2d-%.2d    |\n",
//mtr[i].punkt,mtr[i].num,mtr[i].h,mtr[i].m); }
 
_getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2012, 18:12     Структура, последующий вывод.
Посмотрите здесь:

C++ Структура tm. Вывод даты.
C++ Прокомментируйте мне каждую строчку программы. Структура, сортировка, массив, вывод
Страуструп. Упражнение. Ввод 3 чисел и последующий их вывод в порядке возрастания. C++
C++ Вывод в цикле структуры (структура имеет много полей данных)
C++ Структура: вывод на дисплей фамилии и номеров групп студентов, если средний балл выше 4
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
10.04.2012, 21:36     Структура, последующий вывод. #2
у вас время задается тремя переменными в структуре, а вы вводите почему то только одно число. Надо ввести 3 числа, и все 3 сравнивать через if-условие.
C++
1
2
3
int num;
int h; 
int m;
The1Phoenix
2 / 2 / 0
Регистрация: 28.03.2012
Сообщений: 76
11.04.2012, 06:58  [ТС]     Структура, последующий вывод. #3
Цитата Сообщение от panicwassano Посмотреть сообщение
у вас время задается тремя переменными в структуре, а вы вводите почему то только одно число. Надо ввести 3 числа, и все 3 сравнивать через if-условие.
C++
1
2
3
int num;
int h; 
int m;
int num - номер поезда... я пробывал сделать один if для int h, чтобы хотя бы после определенного часа выводил, не смотря на минуты
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
11.04.2012, 07:36     Структура, последующий вывод. #4
C++
1
if (mtr[n].h>=k)
у вас в условии ошибка еще, n это количество структур. У вас тут выход за границы массива
нужно mtr[i].h >= k
The1Phoenix
2 / 2 / 0
Регистрация: 28.03.2012
Сообщений: 76
12.04.2012, 13:12  [ТС]     Структура, последующий вывод. #5
Ой, точно,спасибо, после пхп уже затупки
Yandex
Объявления
12.04.2012, 13:12     Структура, последующий вывод.
Ответ Создать тему
Опции темы

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