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

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

Войти
Регистрация
Восстановить пароль
 
PG94
2 / 2 / 0
Регистрация: 15.01.2012
Сообщений: 181
#1

Задача из ЕГЭ - C++

14.03.2012, 17:34. Просмотров 368. Ответов 0
Метки нет (Все метки)

Есть след. задача(см.текст)
Вот как я её решал:
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
#include<iostream>
#include<string.h>
using namespace std;
const int M=100;
struct Trains
{   char Station[50];//станция
    char times[6];//время
};
int main()
{   Trains Tr[M];
    int N;//реальное кол-во поездов,уд. условиям задачи
    int i,j; 
    int CountTr=0;//подсчёт поездов, информация о которых была занесена в структуру
    char buff[50],sim;
    char Rtime[6],places[4];// время текущего поезда, кол-во свободных мест в нём
    int num;//число, фурмируемое из времени
    scanf("%d",&N);
    for(i=0;i<N;i++)
    {   scanf("%s",&buff);
        scanf("%c",&sim);
        while(sim==' ')
            scanf("%c",&sim);
        Rtime[0]=sim;
        j=0;
        do
        {   j++;
            scanf("%c",&Rtime[j]);
        }
        while(Rtime[j]!=' ');
        Rtime[j]='\0';
        scanf("%c",places[0]);
        j=1;
        do
        {   j++;
            scanf("%c",&places[j]);
        }
        while(places[j]!='.'&&places[j]!=' ');
        if(places[j]==' ')
            while(places[j]!='.')
                scanf("%c",&places[j]);
        places[j]='\0';
        //обработка данных
        if(places[0]=='0')
        {   num=0;
            for(j=0;Rtime[j]!='\0';j++)
                if(Rtime[j]>='0'&&Rtime[j]<='9')
                    num=num*10+(Rtime[j]-48);
            if(num<=1410)
            {   strcpy(Tr[CountTr].Station,buff);
                strcpy(Tr[CountTr].times,Rtime);
                CountTr++;
            }
        
        }
    }
    if(CountTr==0)printf("no\n");
    else 
        for(i=0;i<CountTr;i++)
            printf("%s %s\n",Tr[i].Station,Tr[i].times);
    return 0;
}
Программа, к сожалению, не работает. Помогите исправить ошибки и, если можно, решить данную задачу более эффективным способом.
Спасибо.
P.S. задача из ЕГЭ, поэтому лучше решать как можно более проще.
Миниатюры
Задача из ЕГЭ   Задача из ЕГЭ  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 17:34     Задача из ЕГЭ
Посмотрите здесь:

ЕГЭ Информатика С2 C++
ЕГЭ Информатика С2 (Массивы) C++
ЕГЭ Информатика С2 C++
C++ ЕГЭ Информатика С4
C++ ЕГЭ Информатика
Не могу реализовать программу из ЕГЭ, ошибка на вводе. C++
Массивы A+B=C (трудная задача из ЕГЭ) C++
ЕГЭ. С4, С2 - обработка массива - правильное выделение памяти C++
C++ C4 ЕГЭ
C++ Кодировка в консоли (на ЕГЭ)
С++ Одна из задач ЕгЭ С4 C++
Задание из ЕГЭ: поиск худших учеников C++

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

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

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