Задача-ребус с собеседования [закрыт]

131
30 апреля 2019, 23:50

Задача-ребус:

что будет выведено на экран?

int n = 3;
int i = 0;
switch (n % 2) {
  case 0:
  do {
  ++i;
  case 1:
  ++i; 
} while (--n > 0);
}
std::cout << i;
Answer 1

При n = 3, остаток от деления (n % 2) равен 1, соответственно в конструкции switch/case происходит переход на метку 1 (case 1:) и переменная i увеличивается на 1. Далее значение n уменьшается на 1 и проверяется условие выхода из цикла.

n = 2, что больше 0. Выхода из тела цикла нет, таким образом выполнение продолжается с начала блока do {. В теле цикла происходит увеличение переменной i на 2 (++i; case 1: ++i;). Конструкция switch/case в данном случаи уже не "работает". Значение n уменьшается на 1 и проверяется условие выхода из цикла.

n = 1, условие выхода из цикла не выполнено, повторяется предыдущий пункт. Переменная i увеличивается еще на 2.

n = 0, цикл завершается и соответственно конечное значение i равно 5.

Проверка онлайн

READ ALSO
Как можно упростить данный код на с++?

Как можно упростить данный код на с++?

Задача: В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить сумму элементов...

161
Нужен полный аналог setScaledContents(true), как у QLabel, но только для QGraphicsView

Нужен полный аналог setScaledContents(true), как у QLabel, но только для QGraphicsView

Мне пришлось переписать связку QLabel-QPixmap на связку QGraphicsView-QGraphicsScene-QGraphicsPixmapItem-QPixmapИ вышло как-то совсем не очень

173
Преобразовать double в RGB(Qcolor)

Преобразовать double в RGB(Qcolor)

Необходимо значение double преобразовать в цвет, чтобы потом использовать в функции SetPixel(x,y,qRGB)Есть такой код преобразования, но по-моему он не работает

161
Перегрузка оператора [] C++

Перегрузка оператора [] C++

У меня есть односвязный списокВ нем надо перегрузить [] так, чтоб был доступ к элементу в заданной позиции

173