diff --git a/modules/02_control_flow/src/break_continue.cpp b/modules/02_control_flow/src/break_continue.cpp index 1ed870f..cd88296 100644 --- a/modules/02_control_flow/src/break_continue.cpp +++ b/modules/02_control_flow/src/break_continue.cpp @@ -3,18 +3,27 @@ namespace control_flow { auto sum_positive(const std::vector& data) -> int { - (void)data; - return 0; + auto sum = 0; + for (const auto i : data) { + if (i > 0) sum += i; + } + return sum; } -auto first_multiple_of(const std::vector& data, int divisor) -> int { - (void)data; (void)divisor; +auto first_multiple_of(const std::vector& data, const int divisor) -> int { + for (const auto i : data) { + if (i > divisor && i % divisor == 0) return i; + } return -1; } auto collect_until_negative(const std::vector& data) -> std::vector { - (void)data; - return {}; + std::vector result; + for (const auto i : data) { + if (i < 0) break; + result.push_back(i); + } + return result; } } // namespace control_flow