Форум » Обработка числовых последовательностей » Задача из книжки Чуркиной по подготовке к ЕГЭ » Ответить

Задача из книжки Чуркиной по подготовке к ЕГЭ

PavelG: Есть след. задача(см.текст) (ч1) (ч2) Вот как я её решал: [pre2]#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.Station,Tr.times); return 0; }[/pre2] Программа, к сожалению не работает. Хотелось бы узнать в чём же проблема и можно ли решить данную задачу более оптимальным способом? Заранее спасибо.

Ответов - 3

Поляков: PavelG пишет: Программа, к сожалению не работает. Хотелось бы узнать в чём же проблема и можно ли решить данную задачу более оптимальным способом? Пошаговый режим в отладчике - и выясняете, в чем проблема. :-) За вас это никто делать не будет.

PavelG: Это ясно, меня более итересовал оптимальный способ решения, а особенно как лучше считывать подаваемую информацию: в строку или читать посимвольно? А ошибка у меня, я думаю,в логике решения(грубая и неявная только для меня).

Поляков: PavelG пишет: как лучше считывать подаваемую информацию: в строку или читать посимвольно? Тут сложность вот в чем: во многих демо-вариантах ЕГЭ прошлых лет, где разбирались задачи с символьными переменными, рекомендовалось считывать посимвольно. В то же время, по моей статистике, большинство профессиональных программистов будут читать сразу строку, а потом ее разбирать. Оба варианта с точки зрения оценивания решения задачи на ЕГЭ равноценны, так что выбирайте, что вам удобнее.




полная версия страницы