From 90342cf89f85fbc9822886ca86ec7952a3b3b1f6 Mon Sep 17 00:00:00 2001 From: MarcUs7i Date: Thu, 26 Sep 2024 18:54:48 +0200 Subject: [PATCH] works as described --- pocket_calc | Bin 0 -> 16064 bytes pocket_calc.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 pocket_calc create mode 100644 pocket_calc.c diff --git a/pocket_calc b/pocket_calc new file mode 100644 index 0000000000000000000000000000000000000000..ff25d9ea40fddac50eaaa9acde88c0faaf1ae6f1 GIT binary patch literal 16064 zcmeHOU2GiH6~4QUV<#luO(5VTEg62ICKRuoI6ovPWF32*F-<~9OdBL%GTxoFr>u9} z-C1IXp9Gm8tSBNaZFwlD?h}-P)Q3_bRDn}yN+?2xC$|FCsv5}_DFgyl+CsM9xpU8Y zJlV7oMSYsP+Bx@p=Y02`Idfw%n(9`;}xKsl=O9yh+8YND7GTN^(9a zeEQy`@)?vGY*aM46(Y#nr+7ixq5N4=A5`|9b~9h5zuk&={2H&FpuEw81xxPlcJS1p zRUZFY@L}Gg`n%L|Xi@oRsnRN%b9T>$bi0EN4Mi}#{eg(diRbk&qT;W>Mvop^6*j5jx@j%Cz%NstN#u}G#A1<$($}r)>>)07` z(uZ^3(wy|1$X8urBv9|e={(>PPkJ@-_r^P0LK$Wt%s`ldFau!*!VH8N2s7|iWI!K2 zQ?DPb{av#V`jIg=S{~PjU$1|y(sX(Kn=qAEzJ+aUMG`gA`^Y{$Sw>m;TheJtIXy1* zmr19oFOAu}Y)e-Kz@?>nqVe)-VN%-F`{ny`0V)X@m#&> z^EG#?b{FVJ zw|od?YBhFiDud0*+SAY@ccbr0|HPj@0OK9tAi2qr2j9|1N@FKedf%@@&hp`=NzhoJTg|Qdx>`8gIXE-W2y3Cs~kD}U|F~^ zw6WQ1W9rQ>%4Gseqh2GW`OQg9JrjI z34(Sh=su#ohZ{LMmeZeu)(Ue9W2w1zEqo5dNJW3mwbwzF?yo5Km&tt&_FPa_Vn;sb z^v;Pr@+#6fe11;s@hMrUaSsijuZcbWC#gl;`NQX*rM@kWicIK{&Nl8EHItue%e>Znt%xLg4KK>UNnj#IQWCy#GdbNehU>*R9I0XyHTIRjR~bZsYJ+$`p`Wir~Tm6_G^ z#k{?x9=BkoUDkJ&a;`m)8)Ch~zR%8BtnGE30d1h*^cKv1g{AU%)TRwNrGl33bL_OW zSraQWa-X{Lc<`s?9al3c3@dY^HjuMSgyyX$P%>BX*Vgdk|hJkH>;p#K3@apVGULrGiz&UTbzyTbXFh z&KCi!r5d!W##$c(^dEMc1rSlAa znbLXvAG?OWry@pwb+l>4vx|d4GOR6dqdghd$4#x$;*^%RC0-uEEG*lsr82R zsFaHCiOT&DuT8v4;rms`jE}0oIPNj!hsBt(aQ}EhCHDuQbj8Cusqa^O+_XuZ^L$q6 zyOjMOO6Ry$^Z$3j>&Jr~Z&2f)Q^{{D$$nbWt8H&@->j|buzGAWudP{^Ses~RYF({r z>|8}sUgn68%Rv+6nbycYpc11ghsz#`8u6NzP)y>*-Y!;?L5*v2wmJ{uwIO)@Lt9LNs>rNmJrWMPt$jqM86+t(~pF z<6>zg&&=v1|7cwB^@i~smuSaO?F9SH0oR!9llKE(6kRHK+_LF0!tr5}x*UlofyXf( zT9WMPNelR59Cv;Xh7ZqE%Ady%vz}G{cdB*R{QkuY5@)X&c@j9q8EofW;M$B^rFI55 z$4~)Lsf$uRaa9kDf3Y`RaMvUpEM7NzY{NBs1%RSk%4QR3F|*L!aQlrkEp?|w_8G_M z%{e`0&d9hT+s>4c+SOrToqflhyV`bkwFAc65k^W^R=s17Ft+cw zZCl$8iLIg<#gHjr~gLWY?@ zHPP!pb*({cX<)(0k%uB-^{JuMmq8<}c~oyqc?_C4q=euPs~{fmC_`)oWv;?~L6U#^2fa}u1!vha0-rKWHeJYQjb11f(0KJ|Ob zlK$8A7ryQ>M!$!CKK~xG)YwtUApbkS|Bg8h$ItUVmfSzj`-1VC;M1Is`8+RVIidQc z7%6wm=lPipjCPs%qbfj_JgHOf>eRMHFH()3W1C4XPo|We0)%mB_dmhUIgn%mk4P`*HbpQYW literal 0 HcmV?d00001 diff --git a/pocket_calc.c b/pocket_calc.c new file mode 100644 index 0000000..b67374b --- /dev/null +++ b/pocket_calc.c @@ -0,0 +1,89 @@ +#include +#include +#include +#include +#define FIRST_OPTION 1 +#define SECOND_OPTION 2 +#define THIRD_OPTION 3 +#define FOURTH_OPTION 4 +#define FIFTH_OPTION -1 + +int main(int argc, char* argv[]) +{ + int user_choice; + while (true) + { + bool dont_pass = true; + printf("Choose one of the following operations:\n"); + printf("\tAdd (%d)\n", FIRST_OPTION); + printf("\tSubtract (%d)\n", SECOND_OPTION); + printf("\tMultiply (%d)\n", THIRD_OPTION); + printf("\tDivide (%d)\n", FOURTH_OPTION); + printf("\tStop program (%d)\n", FIFTH_OPTION); + do + { + printf("Enter your choice: "); + scanf("%d", &user_choice); + dont_pass = user_choice < FIFTH_OPTION || user_choice > FOURTH_OPTION || user_choice == 0; + if (dont_pass) + { + printf("Input not allowed, please try again\n"); + } + + } while (dont_pass); + + if(user_choice == -1) return 0; + + double first_operand; + double second_operand; + dont_pass = true; + do + { + printf("Please enter the first operand: "); + scanf("%lf", &first_operand); + printf("Please enter the second operand: "); + scanf("%lf", &second_operand); + if(user_choice == FOURTH_OPTION && second_operand == 0) + { + printf("Division by zero\n"); + } + else if (first_operand < DBL_MIN || second_operand < DBL_MIN) + { + printf("Number underflow\n"); + } + else if(first_operand > DBL_MAX || second_operand > DBL_MAX) + { + printf("Number overflow\n"); + } + else + { + dont_pass = false; + } + } + while (dont_pass); + + double result; + switch(user_choice) + { + case FIRST_OPTION: + result = first_operand + second_operand; + printf("The result is %.3f\n", result); + break; + case SECOND_OPTION: + result = first_operand - second_operand; + printf("The result is %0.3f\n", result); + break; + case THIRD_OPTION: + result = first_operand * second_operand; + printf("The result is %0.3f\n", result); + break; + case FOURTH_OPTION: + result = first_operand / second_operand; + printf("The result is %2.3f\n", result); + break; + default: + return 0; + } + } + return 0; +} \ No newline at end of file