Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

значения перемнных после выполнения фрагмента кода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в библиотеке std o_O http://www.cyberforum.ru/cpp-beginners/thread427722.html
\program files\visual studio 2008\vc\include\string(14) : error C2143: синтаксическая ошибка: отсутствие ";" перед "namespace" С чем может быть связано? Пишу на vc++ 2008, включаю так: #include...
C++ составить программу для чтения файлов Составить программу для реализации того или иного режима работы с файлами ( чтение, запись, открытие, закрытие файла и т.п. ) http://www.cyberforum.ru/cpp-beginners/thread427714.html
как добавить в программу ввод элементов в список. C++
Доброго времени суток , есть программа , которая вводит кол-во елементов в список, и удаляет все елементы. Требуеться сделать добавку елементов в список, извеняюсь у меня не получается помогите...
C++ да я не знаток но все таки: не понимаю почему ругается на cout
я думаю вам не составит труда ответить
C++ Многочлен берштейна,доказательство колинеарности точек. http://www.cyberforum.ru/cpp-beginners/thread427697.html
Доброго времени,фомумчане!!Как доказать колинеарность точек в многочлене Берштейна-Безье??ПОдобный случай на картинке.надеюсь на вашу компитентность
C++ Перевод проекта из VC 6 в VC2010 ОШИБКА Помогите разобраться в следующей ситуации - необходимо проект, созданный в visual studio 6, перевести в visual studio 2010 - выдает ОШИБКУ "Проект +++++ ссылается на ".NETFramework,Version=v4.0",... подробнее

Показать сообщение отдельно
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
13.01.2012, 21:35
это ахтунг конечно а не код.
C++
1
j=(i<10)
тип выражения i < 10 бул, но результат выражения присваивается инту. поэтому бул в инт преобразуется (в 0 для false и в 1 для true). поэтому в теле цикла значение переменной j всегда будет равно 1. как только значение станет равным 0, цnкл прерывается. поэтому для j печатается 0. а цикл прерывается когда i < 10 == false, т.е. когда i будет равно 10. поэтому для iпечатается 10.

C++
1
2
3
4
5
if(j&1)
  mas[j] = i+1;
else
 mas[j] = -i;
printf("%d\n", mas[i]);
т.к. j тут всегда 1 в else никогда не попадаем. поэтому всегда изменяется элемент массива с индексом 1 (т.е. второй от начала.) но печатается всегда итый элемент. все элементы массива проинициализированы нулем.
сперва печатается элемент с индексом 0 (он равено нулю, потому что поменялся только второй элемент)
на второй итерации в элемент массива с индексом 1 записывается двойка (т.к. i = 1, а 1 + 1 = 2)
на третей итерации в элемент массива с индексом 1 записывается тройка, но после этого печатается элемент с индексом 2, который равен нулю. ну и так далее.
вот и получается что печатается
0 2 0 0 0 0 0 0 0 0
10
0
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru