aboutsummaryrefslogtreecommitdiff
path: root/week02/exercise07.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'week02/exercise07.cpp')
-rw-r--r--week02/exercise07.cpp29
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;
+}