![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 29.10.2011
Сообщений: 141
|
![]()
int test (int a,int b,char te[], char tx[]) { // проверка "нового" Термина на наличае в списке терминов
int x=0, o=a, d; for (int c=0; te[c]!='\0';c++) { if (te[c]=='0'){ for (d=c+1; te[d]!='0' && te[d]!='\0' ;d++,o++) { if (te[d]!=tx[o]) {x=0; break;} else {x=1;}} if (x=1) {if ((b-a+1+1)==(d-c)) {return 1;}}}} return 0; } Есть два текстовых массива tx и te в tx храниться текст, a и b начало и конец слова из tx соответственно, тест должен проверить есть ли такое слово в te при условии что все слова в te разделены знаком '0'. Я устроил проверку таким образом что после того как находиться 0 в te все буквы до следующего 0 или \0 сравниваются со всеми буквами из tx от а до b поочередно. если хоть одна бука не совпадает, break и тоже самое со следующего 0, если же совпадают, то проверяется есть ли 0 в te после проверки. это делается для того чтобы слова такие как AAA и AA тестом не вывелись одинаковыми. Но именно эта ошибка и получается=( Если в te уже записано длинное слово то более короткое, которое совпадает с начало длинно, тестом считается уже находящимся в массиве te =( |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу найти ошибку | ToDayGoodDay | JavaScript, Ajax | 1 | 15.08.2011 09:43 |
не могу найти ошибку | pufystyj | PHP | 2 | 10.03.2011 23:46 |
НЕ могу найти ошибку | T.A.T.A.R.I.N | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 06.03.2011 10:45 |
не могу найти ошибку | kaljan775 | Общие вопросы C/C++ | 2 | 23.10.2010 17:05 |
Не могу найти ошибку | Macwin | JavaScript, Ajax | 6 | 13.06.2010 19:36 |