20.11.2017, 14:52 [+3 UTC]
в нашей команде: 2 271 чел. | участники онлайн: 10 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
20.11.2017, 14:46

Последний вопрос:
20.11.2017, 14:10

Последний ответ:
20.11.2017, 11:49

Последняя рассылка:
20.11.2017, 06:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
31.05.2010, 22:37 »
Болдырев Тимофей
Спасибо большое! [вопрос № 178740, ответ № 261773]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 313
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 168
CradleA
Статус: Профессионал
Рейтинг: 76

Перейти к консультации №:
 

Консультация онлайн # 191242
Раздел: • С / С++
Автор вопроса: pNod (1-й класс)
Отправлена: 25.07.2017, 11:21
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом:
чему будет равно значение переменной i после выполнения следующего фрагмента программы при n=222 ?

...
int k = 2, p = 4;
int n;
scanf("%d", &n);
for (int i = 0; i<n; i++)
{ k++;
p+=25;
}

Я посчитала, что i = 221 ... но говорят неправильно smile

Состояние: Консультация закрыта

Ответ # 275167 от solowey (8-й класс)

Здравствуйте, pNod!
Здравствуйте, pNod!
for (int i = 0; i<n; i++) - ответ тут.
i = 221 тогда условие выполняется и выполнится

{
k++;
p+=25;
}

после этого i будет увеличено на 1 (i++)
i = 222 - условие не выполнится и будет выход из for

Вот как то так...


Консультировал: solowey (8-й класс)
Дата отправки: 25.07.2017, 11:33

5
нет комментария
-----
Дата оценки: 25.07.2017, 12:05

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 191242
CradleA
Профессионал

ID: 325460

# 1

= общий = | 25.07.2017, 11:29 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
pNod:

День добрый.

первое что надо учесть, у Вас идет определение переменной непосредственно в цикле, соответственно за телом цикла переменна i не будет видна.

Что же происходит у нас в цикле и нарасчивается на 1
когда i = 221 цикл все еще отрабатывает и происодит вход в тело цикла, переменная i увеличивается на 1 i = 222 и вот тут срабатывает условие i < n
происходит выход из цыкла.

=====
to live is to die

pNod
1-й класс

ID: 401172

# 2

= общий = | 25.07.2017, 11:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Спасибо, понятно! Я трактовала вопрос как "На каком значении переменной i закончит свою работу цикл?" и получилось, что это неверно smile

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 3

= общий = | 25.07.2017, 11:55 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
pNod:

После выхода из цикла переменная i становится недоступной.
Думаю, правильный ответ: после цикла переменная i - недоступна
Если бы она была описана вне цикла, то она была бы равна 222

Именно по этой причине я стараюсь переменные цикла не определять в теле цикла.
Лично мне достаточно часто бывает нужно значение этой переменной после выхода из цикла.

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

• Отредактировал: Лысков Игорь Витальевич (Старший модератор)
• Дата редактирования: 25.07.2017, 12:01

pNod
1-й класс

ID: 401172

# 4

= общий = | 25.07.2017, 12:04 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Лысков Игорь Витальевич
Думаю, правильный ответ: после цикла переменная i - недоступна

Здравствуйте, Игорь Витальевич! Знаете, я ведь также подумала, но решила, что надо обязательно ввести значение, потому как ответы программа проверяет автоматически. Значит забито в ответе число, т.к. сформулировать словом можно по разному: я сформулирую ответ как "локальная переменная уничтожена", вы "что не определена", кто-то что ее "не существует"...
Так что, думаю здесь, имелось ввиду 222.

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 5

= общий = | 25.07.2017, 12:09 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
pNod:

Скорее всего. Значит, вопрос сформулирован некорректно.

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

pNod
1-й класс

ID: 401172

# 6

= общий = | 25.07.2017, 12:11 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: Лысков Игорь Витальевич
Значит, вопрос сформулирован некорректно.

Полностью согласна.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14027 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн