| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > предлагаю поиграться |
| Автор: Teacher 10.3.2004, 21:13 |
| Попробуйте свои силы без компилятора: Чему будет равно z после выполнения следующего фрагмента кода? int z = 1, y; for( y=-1; y++ < 2; y-- ) z += y++; cout << z; Варианты ответов: a) z = 0 d) z = 3 b) z = 1 e) z = 4 c) z = 2 Могу разместить на форуме целый тест. Если есть желание, чтобы он появился - напишите здесь. |
| Автор: mer 10.3.2004, 21:15 |
| Интересно, а что for( y=-1; y++ < 2; y-- ) в этом коде перед первой итерацией выполняется, а что после итерации? |
| Автор: Step 11.3.2004, 10:53 |
| Модератор:размещать не надо, разрешаю в этом топике дать ссылку, но не больше |
| Автор: Fantasist 11.3.2004, 20:44 | ||
Ничего. Тело цикла не выполниться ни разу, хотя y увеличется на 1 и станет равно 0. z останется равным 1. |
| Автор: Vyacheslav 12.3.2004, 14:17 |
| Первый цикл Присвоение y = -1 Выполнение проверки y++< 2 (-1<2 ; y = -1 + 1 = 0; ) Выполнение z += y++ (z = 1+ 0 =1 ; y = 0 + 1 = 1 ) Выполнение y-- (y = 1 - 1 =0) Второй цикл Выполнение проверки y++< 2 ( 0<2 ; y = 0 + 1 = 1; ) Выполнение z += y++ (z = 1+ 1 =2 ; y = 1 + 1 = 2 ) Выполнение y-- (y = 2 - 1 =1) Третий цикл Выполнение проверки y++< 2 ( 1<2 ; y = 1 + 1 = 2; ) Выполнение z += y++ (z = 2+ 2 =4 ; y = 2 + 1 = 3 ) Выполнение y-- (y = 3 - 1 =2) Четвертый цикл Выполнение проверки y++< 2 ( 2<2 ; y = 2 + 1 = 3; ) Выход z=4, y = 3 |
| Автор: Fantasist 12.3.2004, 20:03 |
| Забавно, почему это я выражение -1<2 посчитал ложным. |