Форум » Обработка символьных строк » 24 » Ответить

24

Кэйт: В текстовом файле k8-0.txt находится цепочка из символов, в которую могут входить заглавные буквы латинского алфавита A…Z и десятичные цифры. Найдите длину самой длинной подцепочки, состоящей из одинаковых символов. Если в файл несколько цепочек одинаковой длины, нужно взять первую из них. Выведите сначала символ, из которого строится эта подцепочка, а затем через пробел – длину этой подцепочки. [quote]Подскажите, в чём ошибка? [/quote] [pre2] var f:text; z,tek,pred: char; kol,max:integer; begin assign (f,'C:\Users\Admin\Desktop\EWTF.txt'); reset(f); read (f,pred); kol:=1;z:=pred;max:=0; while not eof (f) do begin read (f,tek); if tek=pred then kol:=kol+1 else begin if kol>max then begin max:=kol; z:=pred; end; kol:=1; end; pred:=tek;end; if kol>max then begin max:=kol; z:=pred; end; writeln(z,'',max); close (f); end.[/pre2]

Ответов - 3

Поляков: Думаю, что сначала лучше поставить отступы нормально. Так очень сложно что-то понять в программе.

GasDM: Кэйт пишет: Подскажите, в чём ошибка? А почему Вы решили, что здесь ошибка? Скопировал код из вопроса, подправил путь к файлу и программа запустилась. Конечно, если бы самая длинная цепочка замыкала файл, то ответ был бы неверным.

Mike_Boone: GasDM пишет: Конечно, если бы самая длинная цепочка замыкала файл, то ответ был бы неверным. Всё было бы нормально. Обратите внимание на конец кода после посимвольного чтения файла if kol > max then begin max := kol; z := pred; end; writeln(z, '', max);close(f);




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