![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 24
|
![]()
Помогите найти ошибку. Программа должна искать количество вхождений подстроки в строку, а вместо нужного числа всегда выводит только 0
Код:
Последний раз редактировалось STIFFmaster_LP; 23.01.2010 в 17:40. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
Простите, я не очень люблю читать нотации вместо того, чтобы дать конкретный совет, которого ждёт человек, но... Вам говорили на лекциях, что одно из требований, которому должен удовлетворять любой алгоритм, - универсальность? Если у Вас в подстроке окажется 25 символов, Вы безропотно сцепите в if-e 25 условий?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 24
|
![]()
у нас препод дибил. все что я знаю я сам прочитал. он только требует лабораторные и все.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
![]()
Рано ему туда. Он алгоритм составить не может...
... Один из вариантов выглядит примерно так. Вводим булеву переменную, которая будет равна TRUE, ежели подстрока нашлась и FALSE - если нет. Полагаем её для начала равной TRUE и начинаем перебирать (перебираем от 0 до длина_подстроки-1 включительно) символы подстроки, сравнивая их попарно с соотв. символами основной строки, начиная со stroka[0]. Если нашли несовпадение - сбрасываем этот флажок (булеву переменную) в FALSE и выходим из цикла. Если же символы совпадают - переходим к следующей паре. На выходе из цикла проверяем флажок. Это мы проверили, не совпадает ли с подстрокой последовательность основной строки, начинающаяся с символа с индексом [0]. Чтобы подсчитать количество вхождений, повторяем всё, что написано в предыдущем абзаце, для символов основной строки, начинающихся с индекса [1], потом - с индекса [2] и т.д., всего (длина_строки - длина_подстроки+1) раз.(подразумевается, что длина_подстроки <= длина_строки). Советую про C/C++ на пару часов забыть и нарисовать блок-схему. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 24
|
![]()
препод запретил такие функции использовать. сказал сделать все циклами и условиями
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 18.10.2009
Сообщений: 185
|
![]()
STIFFmaster_LP скажите, у вас строки какой длинны должны быть? Сколько символов? Могут ли строки быть меньше этой длинны?
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает." |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 24
|
![]()
ну да. длина строк не важна. важно чтоб программа работала
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 18.10.2009
Сообщений: 185
|
![]()
попробуйте такой код:
Код:
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает." Последний раз редактировалось val_nnm; 24.01.2010 в 00:01. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу найти ошибку в программе | lioshenka | Общие вопросы C/C++ | 5 | 24.08.2009 11:38 |
Не могу найти ошибку в программе | Dawystrik | Общие вопросы Delphi | 9 | 19.03.2009 21:19 |
Очень нужна помощь! Нужно найти ошибку в очень простой программе. | Lex55555777 | Помощь студентам | 3 | 07.12.2008 20:32 |
помогите на найти ошибку в программе | SYL@R | Помощь студентам | 1 | 28.11.2008 12:35 |
Помогите найти ошибку в программе | KnDmPetr | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 10.03.2008 14:19 |