Начиная с 11 стандарта в С++ был добавлен новый для этого языка тип по имени bool
. Он назван в честь английского математика Джорджа Буля, разработавшего математическое представление законов логики.
Булевская переменная может принимать два значения: true
(истина) или false
(ложь). Для хранения булевской переменной выделяется один байт:
bool is_even;
std::cout sizeof(is_even); // => 1
В ранних версиях языка С++ булевский тип отсутствовал. В место этого С++ интерпретировал ненулевые значения как true
, а нулевые как false
.
Литералы true
и false
могут быть преобразованы в тип int
, причем истинна будет преобразована в единицу, а ложь в ноль:
int is_even { true };
int promise { false };
std::cout << is_even; // => 1
std::cout << promise; // => 0
Кроме того, любое числовое значение может быть преобразовано неявно в значение bool
:
bool is_even { 0 }; // false
bool promise { 1 }; // true
false == 0; // true
Допишите программу, которая принимает в качестве аргумента командной строки число и определяет его четность. Результат сохраните в переменной типа bool
и выведите на экран.
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Ваше упражнение проверяется по этим тестам
1#include "test_helper.h"
2
3TEST_CASE("testing solution") {
4 std::string expected = "1\n";
5 std::string actual = get_output(sizeof(expected), "4");
6
7 CHECK(actual == expected);
8}
9
Решение учителя откроется через: