summaryrefslogtreecommitdiff
path: root/4p22.cpp
diff options
context:
space:
mode:
authorOskar <[email protected]>2024-08-20 13:51:53 +0200
committerOskar <[email protected]>2024-08-20 13:51:53 +0200
commit12dda8d5244e86096a5ea56014073dd1892cc409 (patch)
treeffaf835edd33da23a58405db5e733ebfc71e5a5e /4p22.cpp
parentd0c6ac2b68380020d76d7f938307e056a25eb5f5 (diff)
more
Diffstat (limited to '4p22.cpp')
-rw-r--r--4p22.cpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/4p22.cpp b/4p22.cpp
new file mode 100644
index 0000000..29475da
--- /dev/null
+++ b/4p22.cpp
@@ -0,0 +1,73 @@
+#include <iostream>
+
+/*
+ *
+ * 4.22
+ *
+ *
+ */
+
+void cond_op_grade() {
+
+ std::string finalgrade;
+ unsigned int grade = 0;
+ if(std::cin >> grade) {
+ if(grade > 100) { return; }
+
+ } else {
+ return;
+ }
+
+ finalgrade = (grade >= 90) ? "high pass" : (grade >= 75) ? "pass" : (grade >= 60) ? "low pass" : "fail";
+ std::cout << finalgrade << std::endl;
+}
+
+void if_grade() {
+
+ std::string finalgrade;
+ unsigned int grade = 0;
+ if(std::cin >> grade) {
+ if(grade > 100) { return; }
+
+ } else {
+ return;
+ }
+
+ if(grade >= 90) {
+ finalgrade = "high pass";
+ } else if(grade >= 75) {
+ finalgrade = "pass";
+ } else if(grade >= 60) {
+ finalgrade = "low pass";
+ } else {
+ finalgrade = "fail";
+ }
+
+ std::cout << finalgrade << std::endl;
+}
+
+int main () {
+
+ /*
+ Not really sure which of these is the 'better' alternative
+ i do like how conditional operator is very terse and can
+ do the same thing in a very small line. But it could also
+ be a bit more difficult to read and understand. It could
+ simply be a skill issue whether it's hard to read or not
+ but i am not really sure.
+
+ I do think the if statement is a bit easier to read because
+ it is simply just so common and widely used that you really
+ just default to it. I know that all operators and if
+ statements have their best moments to be used but i can't
+ really judge which one would be best for this case.
+
+ I guess the best use for the the conditional operator
+ is best when we want to do a simple if statement where there
+ are just two simple outcomes
+ */
+
+ cond_op_grade();
+ if_grade();
+ return 0;
+}