Пришла пора менять работу. Решил попроходить различные тесты, чтобы выявить пробелы в знаниях и устранить их. Попутно заинтересовался курсами в geekbrains, потому их тесты стал проходить первыми.
Вопрос из группы сложных: https://i.imgur.com/KOMTtok.png
Так как цикл do-while, первая итерация у нас безусловная, напечатали звездочку, результат целочисленного деления сохранили в i = 1. Выполняем проверку условия - результат целочисленного деления 1/2 (с отбрасыванием дробной части) - 0. Выходим из цикла.
Вроде бы все просто, отвечаю «одну».
В конце теста узнаю, что этот ответ мне не засчитали.
Компилирую этот код gcc (linux,x86_64), результат получаю тот же - одна звезда:
[popov@PopovIansWorkstation ~]$ cat test1.cpp
#include <iostream>
int main(int argc, char **argv) {
int i = 5;
do {
std::cout << '*';
i /= 4;
} while (i/2);
std::cout << std::endl;
return 0;
}
[popov@PopovIansWorkstation ~]$ g++ test1.cpp && ./a.out
*
[popov@PopovIansWorkstation ~]$
Ошибка в тесте, подумал я и написал об этом в geekbrains.
Специалист, с которым я связался, уточнил этот вопрос у ответственного лица, и ответил мне, что верный ответ «две звезды».
Я не стал настаивать на своей правоте, вдруг в этом примитивном коде я упустил что-то важное. Потому хочу обсудить этот вопрос с вами.
c++, mail.ru, тесты