IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Операция с одномерным численным массивом, хелп!
Олег
сообщение 5.03.2007 13:32
Сообщение #1


Гость






Задание: найти наибольшее количество цифр, идущих подряд.

Функция, использует переменные
ntemp - количество цифр в строке
temp - сам массив цифр



Function count(ntemp:byte; temp:massiv):byte;
Var i,t,c,max:byte;
Begin
max:=1;
For i:=1 to (ntemp-1) do if (temp[i]=temp[i+1]-1) then
begin
t:=i;
c:=1; while (t<ntemp) and (temp[t]=temp[t+1]-1) do
begin
if c>max then max:=c; else inc©; inc(t);
end;
i:=t;
end;
count:=max+1;
End;




Проблема в следующем: функция циклится в процессе For , несмотря на то, что i много больше ntemp, чего, я полагаю, быть не должно.


Если дана строка вида 12345000 или 765123400 то проблем нет - последовательность одна. А вот при сравнении максимума все зависает.

Замечу, что пробовал не один алгоритм - эффект идентичный.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 13:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"