![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
и printf( ( 0 == -1 ? "true" : "false" ) ); |
|
![]() |
![]() |
![]() |
#12 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#13 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
важно какой смысл придается кавычкам. Можно например запретить вкладывать в каждую пару открытых скобок нечетное количество кавычек, т.е.
("") верно (""") неверно для этого достаточно завести булевый флажок и каждый раз при встрече кавычки выполнять fl ^= 1; Если встретишь закрывающую скобку - флажок должны быть равен нулю, если все верно. Но если предположить что между кавычками располагается строка, которая может содержать скобки - то это не сработает, например ( "()" ) тут все верно, но ошибка возникнет на первой закрывающей скобке. Можно, например, не учитывать вообще скобки, размещенные между кавычками - большинство компиляторов так и делают, т.е. не проверяют балланс скобок между кавычками. Для этого тебе будет достаточно примерно такого кода: Код:
|
![]() |
![]() |
![]() |
#14 |
Пользователь
Регистрация: 16.08.2011
Сообщений: 27
|
![]()
Пепел Феникса, точно! Спасибо, работает.
rrrFer, попробую, спасибо ![]() то ли я это упустил, то ли нам не рассказывали об этом (именно про "^" ). Последний раз редактировалось Cheat; 02.09.2012 в 17:17. |
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 16.08.2011
Сообщений: 27
|
![]()
А если завести массив и рекурсивно записывать в него кол-во кавычек, которые были ДО скобок?
к примеру, в строке ("("")") получится так: 1 кавычка; потом - подсчет кавычек в скобках. если все ОК - смотрим, что у нас идет после закрывающей скобки. если кавычка - смотрим в массиве, сколько кавычек у нас было до вложенных скобок и прибавляем новые кавычки. если число четное - идем дальше. если нет - прерываем. хотя и тут есть подводные камни - если после скобок идет три пары кавычек, в сумме получится 4, т.е. правильно, однако последовательность неверная. фу, что-то я окончательно запутался.. |
![]() |
![]() |
![]() |
#16 | |||
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
ты читал что я написал?, внимательно?
Цитата:
Цитата:
Цитата:
1^1 = 0 1^0 = 1 0^1 = 1 0^0 = 0 с тем же успехом можешь писать так fl = 0 == fl; или fl = !fl; |
|||
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 16.08.2011
Сообщений: 27
|
![]()
Ух ты, круто! Спасибо, буду знать!
По условию задачи вообще нужно проверить баланс скобок (чтобы каждая кавычка или скобка была закрыта), и проверить правильность расстановки кавычек и скобок (чтобы они не пересекались и были закрыты надлежащим образом). Используются только ', ", (, ). |
![]() |
![]() |
![]() |
#18 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
держи:
Код:
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 16.08.2011
Сообщений: 27
|
![]()
Большое спасибо!
![]() |
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 16.08.2011
Сообщений: 27
|
![]()
Появилась два дурацких вопроса..
зачем тут два раза повторяется str[ i ]? причем если последнее повтороение убрать, то i++ выполняться не будет, но программа выведет правильный результат. и второй. я понимаю, что эта строка эквивалентна такой: i = i +quote != 0; но я не пойму ее смысл. для меня такая форма записи необычна. зачем в конце "!= 0"? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверить правильность расстановки круглых и квадратных скобок в выражениях | tarasman11 | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 06.07.2012 11:50 |
Программа, которая определяет правильность расстановок скобок (, [, {, ), }, ] | sidestep | Общие вопросы C/C++ | 14 | 04.04.2012 15:36 |
Проверить на правильность задачу | sam5213 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 23.12.2010 18:28 |
Нужно проверить на правильность программу | Killdgedan | Помощь студентам | 3 | 26.05.2009 00:45 |
Проверить равенство числа открывающих и закрывающих круглых скобок | 010 | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 18.05.2008 00:27 |