diff options
| author | Syndamia <kamen@syndamia.com> | 2023-10-19 19:40:08 +0300 |
|---|---|---|
| committer | Syndamia <kamen@syndamia.com> | 2023-10-19 19:40:08 +0300 |
| commit | fbbe586d25b1ebaf66fe2e92e1986bb5debf961d (patch) | |
| tree | 58f288b71fd5d1e046158b442438ea282285a619 /week02/exercise07.cpp | |
| parent | a597f37a109398549d8ab098a2d6de19a4a1b4b8 (diff) | |
| download | upp-2023-solutions-fbbe586d25b1ebaf66fe2e92e1986bb5debf961d.tar upp-2023-solutions-fbbe586d25b1ebaf66fe2e92e1986bb5debf961d.tar.gz upp-2023-solutions-fbbe586d25b1ebaf66fe2e92e1986bb5debf961d.zip | |
[w2] Added solutions
Diffstat (limited to 'week02/exercise07.cpp')
| -rw-r--r-- | week02/exercise07.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
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 <iostream> + +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; +} |
