0 / 0 / 1
Регистрация: 04.10.2008
Сообщений: 64
|
|
1 | |
Найти длину самого длинного слова.10.12.2008, 10:25. Показов 4744. Ответов 13
Метки нет (Все метки)
У меня задача: дана строка состоящая из русских слов, разделенных пробелами(одним или несколькими). Найти длинну самого длинного слова.
Ничего не выходит, даже цикл никакой составить не могу...
0
|
10.12.2008, 10:25 | |
Ответы с готовыми решениями:
13
Найти длину самого длинного и самого короткого слова Найти длину самого короткого и самого длинного слова Найти длину самого короткого слова и самого длинного слова Найти длину самого короткого слова и самого длинного слова |
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
10.12.2008, 10:44 | 2 |
ну так яви нам свои потуги
0
|
0 / 0 / 1
Регистрация: 04.10.2008
Сообщений: 64
|
|
10.12.2008, 10:55 [ТС] | 3 |
ну... тут такой маразм выходит...
for i:=1 to length(s) do repeat p:=s[i]+s[i]; until s[i]=' '; но даже если бы этот цикл был правильный, то он бы считал ко-во символ только до первого пробела.. а он не считает-консоль открываеться, и на всегда глючит, приходиться закрывать всю программу.
0
|
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
10.12.2008, 11:11 | 4 |
простите, а это код чего? считывания строки?
так все гораздо проще Код
var s: string; readln(s);
0
|
0 / 0 / 1
Регистрация: 04.10.2008
Сообщений: 64
|
|
10.12.2008, 11:14 [ТС] | 5 |
нет, это еще до того цикла само собой... это поиск в строке пробела.... мне надо же както посчитать символы до пробела....
0
|
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
10.12.2008, 11:20 | 6 |
простите, а зачем удалять символы до пробела, вам же надо просто найти самое длинное слово...
алгоритм прост: 1-ый вариант: 1. сканируешь строку и считаешь кол-во символов 2. пробел - это конец слова, записал в массив длину 3. повторяешь п.п. 1-2 до конца строки 4. в полученном массиве находишь максимум 2-ой вариант: 1. сканируешь строку и считаешь кол-во символов в переменную cnt (текущий размер) 2. пробел - это конец слова, если первое слово, то присваеваешь переменной max значение cnt, иначе проверяешь кто больше cnt или max (думаю, тут все понятно) 3. п. 3 варианта № 1
0
|
0 / 0 / 1
Регистрация: 04.10.2008
Сообщений: 64
|
|
10.12.2008, 11:38 [ТС] | 7 |
сканируешь - значит читаешь?
Добавлено через 2 минуты 46 секунд 2. пробел - это конец слова, записал в массив длину я это пониаю, но записать не могу! с языком пробемы наверно... как показать программе, что если пробел то запись в массив?
0
|
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
10.12.2008, 11:41 | 8 |
Код
if s[i] = ' ' then mas[index] := cnt;
0
|
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
|
|
10.12.2008, 11:55 | 9 |
не проверял работает ли:
Код
max := 0; len := 0; for i:=1 to length(s) do if s<>' ' then inc(len) else begin if len>max then max := len; len := 0; end;
0
|
0 / 0 / 1
Регистрация: 04.10.2008
Сообщений: 64
|
|
10.12.2008, 11:56 [ТС] | 10 |
я первым способом делала
Код
program str46; uses crt; var s:string; i,n:integer; mas:array[1..50] of byte; begin write('vvedite s-> '); read(s); for i:=1 to length(s) do if s[i]=' 'then mas[n]:=i; writeln(' ',mas[n]); readln; end.
0
|
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
10.12.2008, 12:17 | 11 |
раз уже пробывала, но не получилось, то глянь на такой код:
Код
program str46; uses crt; var s:string; i,c,max:integer; begin write('vvedite s-> '); read(s); c:=0; max:=0; for i:=1 to length(s) do begin if s[i]=' 'then begin if c > max then max:=c; c:=0; end else inc(c); end; if c > max then max:=c; writeln(' ',max); readkey; end.
0
|
0 / 0 / 1
Регистрация: 04.10.2008
Сообщений: 64
|
|
10.12.2008, 12:29 [ТС] | 12 |
эм...но только считает после первого пробела, и дальше там как все слово, даже если еще идут пробелы...
0
|
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
10.12.2008, 12:36 | 13 |
посмотри мою программку, а свою потрассируй и глянь, что она там делает вообще...
1
|
0 / 0 / 1
Регистрация: 04.10.2008
Сообщений: 64
|
|
10.12.2008, 12:47 [ТС] | 14 |
сейчас
Добавлено через 7 минут 15 секунд :*) спасибо!!! я прослежу со своими маразмами, кажеться я поняла, где я делала не верно...
0
|
10.12.2008, 12:47 | |
10.12.2008, 12:47 | |
Помогаю со студенческими работами здесь
14
Найти длину самого длинного слова строки Определить длину самого длинного слова в строке Определить длину самого длинного слова тексте Найти длину самого короткого слова Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |