|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.01.2010, 00:30 | #1 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 24
|
Нужно найти ошибку в программе (С++)
Помогите найти ошибку. Программа должна искать количество вхождений подстроки в строку, а вместо нужного числа всегда выводит только 0
Код:
Последний раз редактировалось STIFFmaster_LP; 23.01.2010 в 17:40. |
23.01.2010, 14:36 | #2 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Простите, я не очень люблю читать нотации вместо того, чтобы дать конкретный совет, которого ждёт человек, но... Вам говорили на лекциях, что одно из требований, которому должен удовлетворять любой алгоритм, - универсальность? Если у Вас в подстроке окажется 25 символов, Вы безропотно сцепите в if-e 25 условий?
|
23.01.2010, 15:07 | #3 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 24
|
у нас препод дибил. все что я знаю я сам прочитал. он только требует лабораторные и все.
|
23.01.2010, 16:06 | #5 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Рано ему туда. Он алгоритм составить не может...
... Один из вариантов выглядит примерно так. Вводим булеву переменную, которая будет равна TRUE, ежели подстрока нашлась и FALSE - если нет. Полагаем её для начала равной TRUE и начинаем перебирать (перебираем от 0 до длина_подстроки-1 включительно) символы подстроки, сравнивая их попарно с соотв. символами основной строки, начиная со stroka[0]. Если нашли несовпадение - сбрасываем этот флажок (булеву переменную) в FALSE и выходим из цикла. Если же символы совпадают - переходим к следующей паре. На выходе из цикла проверяем флажок. Это мы проверили, не совпадает ли с подстрокой последовательность основной строки, начинающаяся с символа с индексом [0]. Чтобы подсчитать количество вхождений, повторяем всё, что написано в предыдущем абзаце, для символов основной строки, начинающихся с индекса [1], потом - с индекса [2] и т.д., всего (длина_строки - длина_подстроки+1) раз.(подразумевается, что длина_подстроки <= длина_строки). Советую про C/C++ на пару часов забыть и нарисовать блок-схему. |
23.01.2010, 17:31 | #7 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 24
|
препод запретил такие функции использовать. сказал сделать все циклами и условиями
|
23.01.2010, 17:37 | #8 |
Форумчанин
Регистрация: 18.10.2009
Сообщений: 185
|
STIFFmaster_LP скажите, у вас строки какой длинны должны быть? Сколько символов? Могут ли строки быть меньше этой длинны?
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает." |
23.01.2010, 22:31 | #9 |
Пользователь
Регистрация: 24.10.2009
Сообщений: 24
|
ну да. длина строк не важна. важно чтоб программа работала
|
23.01.2010, 23:26 | #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 |