![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.12.2011
Сообщений: 27
|
![]()
Если последний элемент строки - заглавная буква, то происходит зацикливание. Посмотрите что не так.
![]() Код:
|
![]() |
![]() |
![]() |
#2 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
![]()
Может потому что где-то там лежит символ конца строки?
Код:
Код:
и не удалять из строки, а копировать в другую строковую переменную. Ну или сразу выводить.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Начнем с того, что изменять переменную-счетчик в цикле For — глупость из глупостей
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 09.12.2011
Сообщений: 27
|
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Тогда он потом обращается ЗА границы массива символов "а" (строка есть массив симвалов, ага?)
Длина массива, ясен пень, уменьшится после удаления одного символа, а ОБЛАСТЬ ПАМЯТИ - нет. На примере: а = "abcD" символ "D" будет удален, i станет равна 3м. На следующей итерации она опять станет равна 4м и обратится к несуществующему 4му символу в "а". А там, ВНЕЗАПНО, осталась наша старая добрая "D". И так пока конец света не настанет Access Violation вообще за такие вещи положен ![]()
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 09.12.2011
Сообщений: 27
|
![]()
пойду осмысливать вышесказанное) и зарядка на ноуте кончается....
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 388
|
![]()
А можно само задание?
на неконкретные вопросы даю неконкретные ответы ...
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
замените цикл for на цикл while (i <= length(a)) и будет вам счастье
![]()
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 09.12.2011
Сообщений: 27
|
![]()
почему там D останется?
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
![]()
Потому что длина массива символов изменится (число поменяется), участок памяти размером в один символ будет считаться освобожденным (его сможет использовать какая-нибудь другая программа), а само содержимое ячейки памяти никто менять не будет. А в массивах элементы располагаются в памяти строго по порядку, это вам не списки
![]() "D" там останется необязательно: эту область памяти может успеть забрать себе и перезаписать какая-нибудь другая программа. Но в вашем случае других программ нет, один турбопаскаль. Так что "D" в памяти никто не потревожит
Благодарить в репутацию. Проклинать — туда же
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Зацикливание C++ | Shift_sk | Общие вопросы C/C++ | 5 | 18.01.2011 19:01 |
Рекурсивное зацикливание | Alex_Almaty | Помощь студентам | 8 | 06.07.2010 07:49 |
Зацикливание программы | Arcanum | Общие вопросы Delphi | 7 | 12.04.2010 10:20 |
Зацикливание в паскале. | sir.andrey | Помощь студентам | 2 | 19.03.2010 13:57 |
Почему получается зацикливание?? | _Studentka_ | Общие вопросы по Java, Java SE, Kotlin | 1 | 09.12.2009 02:13 |