From fbbe586d25b1ebaf66fe2e92e1986bb5debf961d Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 19 Oct 2023 19:40:08 +0300 Subject: [w2] Added solutions --- week02/exercise07.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 week02/exercise07.cpp (limited to 'week02/exercise07.cpp') diff --git a/week02/exercise07.cpp b/week02/exercise07.cpp new file mode 100644 index 0000000..708ff20 --- /dev/null +++ b/week02/exercise07.cpp @@ -0,0 +1,29 @@ +#include + +int main() { + int a, b, c; + std::cin >> a >> b >> c; + // Най-ефикасния начин да направим това, е да използваме 3 if-a и в тях да разменяме стойностите, + // така че накрая винаги a, b и c са в нарастващ ред + // Най лесния начин да обясня логиката е следния: + // Искаме a < b < c, това може да го сведем до точно 3 сравнение между две стойности, + // a < b, b < c и това което е изпълнено поради дефиницията на <, a < c + // a < b < c може да не е изпълнено, когато a < b, b < c и/или a < c не е изпълнено + // Затова разглеждаме точно тези случаи, които не биха били изпълнени, и с размяна ги правим изпълнени + if (a > b) { + int temp = a; + a = b; + b = temp; + } + if (b > c) { + int temp = b; + b = c; + c = temp; + } + if (a > c) { + int temp = a; + a = c; + c = temp; + } + std::cout << a << ' ' << b << ' ' << c << std::endl; +} -- cgit v1.2.3