Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 525
от 15.09.2006, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 388, Экспертов: 56
В номере:Вопросов: 1, Ответов: 3


Вопрос № 54915: Здравствуйте! Почему-то получается беcконечный цикл, если пользователь вводит для znak[11] значение меньше 11. Если условие c<=11 заменить на с<12 тогда все работает для любых значений znak[11]. Растолкуйте, пожалуйста, в чем секрет...

Вопрос № 54.915
Здравствуйте!
Почему-то получается беcконечный цикл, если пользователь вводит для znak[11] значение меньше 11.
Если условие c<=11 заменить на с<12 тогда все работает для любых значений znak[11].
Растолкуйте, пожалуйста, в чем секрет?
Borland С++ Builder 6.

Приложение:

Отправлен: 10.09.2006, 12:35
Вопрос задал: Юpий (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: InviZ
Здравствуйте, Юpий!
У вас повреждается стек.
В квадратных скобках при объявлении массива указывается количество элементов массива.
int znak[11] - это объявление массива из 11 элементов - с индексами от 0 до 10...
Ответ отправил: InviZ (статус: 3-ий класс)
Ответ отправлен: 10.09.2006, 12:58
Оценка за ответ: 5

Отвечает: Vaga
Здравствуйте, Юpий!
В вашем случае for должен иметь 11 циклов, а не 12, как следует из условия. Массив znak состоит из 11 элементов, и потому znak[11] просто нет.
---------
Вольному - воля
Ответ отправил: Vaga (статус: 3-ий класс)
Ответ отправлен: 10.09.2006, 20:47
Оценка за ответ: 5

Отвечает: dentist
Здравствуйте, Юpий!
во первых объявление массива znak[11] говорит о том что массив размером 11 элементов а не 12 (с чего вы это взяли не пойму).
соответственно в цикле необходимо писать так:
for(int c = 0; c < 11; c++)
дело в том, что нумерация элементов массива начинается с 0 (ноль) а не с единицы.
т.е. в znak[11] номера элементов от 0 до 10
---------
"Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 3-ий класс)
Ответ отправлен: 12.09.2006, 14:47
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное