From 0b2e6fb73dc33ee82444c8586edb6d902b91daef Mon Sep 17 00:00:00 2001 From: Enrico Schellenberger Date: Mon, 5 Feb 2024 19:44:22 +0100 Subject: [PATCH] added ConGram logic --- src/main/c/ConvertMode.c | 107 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 101 insertions(+), 6 deletions(-) diff --git a/src/main/c/ConvertMode.c b/src/main/c/ConvertMode.c index 4b8333d..f18e08f 100644 --- a/src/main/c/ConvertMode.c +++ b/src/main/c/ConvertMode.c @@ -78,8 +78,6 @@ double getValue(int choice) { printf("\nThe convertet result is %dlf %d", result, Distance[endingUnit]); break; - } - case 4://'mg', 'g', 'kg', 't' printf("\nEnter what the Unit is starting with (0 mg, 1 g, 2 kg , 3 t): "); scanf("%d", &startingUnit); @@ -87,13 +85,14 @@ double getValue(int choice) { printf("\nEnter what the value should it be changed to (0 mg, 1 g, 2 kg , 3 t): "); scanf("%d", &endingUnit); - result = ConKilometerToMiles(value, startingUnit, endingUnit); + result = ConGram(value, startingUnit, endingUnit); printf("\nThe convertet result is %dlf %d", result, Distance[endingUnit]); break; + } } - } + } double ConMeter(double meter, int startingUnit, int endingUnit) { @@ -272,8 +271,104 @@ double ConKilometerToMiles(double distance, int startingUnit, int endingUnit) { } } -double ConGram() { - +double ConGram(double weight, int startingUnit, int endingUnit) { + switch (startingUnit) + {//'mg', 'g', 'kg', 't' + case 0: //mg to x + switch (endingUnit) + { + case 0: //1 + return weight; + break; + + case 1: //0.001 + return weight / 1000; + break; + + case 2: //0.000001 + return weight / 1000000; + break; + + case 3: //0.000000001 + return weight / 1000000000; + break; + + default: + break; + } + + case 1: //g to x + switch (endingUnit) + { + case 0: //1000 + return weight * 1000; + break; + + case 1: //1 + return weight; + break; + + case 2: //0.01 + return weight / 100; + break; + + case 3: //0.000001 + return weight / 100000; + break; + + default: + break; + } + + case 2: //kg to x + switch (endingUnit) + { + case 0: //1000 + return weight * 1000; + break; + + case 1: //100 + return weight * 100; + break; + + case 2: //1 + return weight; + break; + + case 3: //0.001 + return weight / 1000; + break; + + default: + break; + } + + case 3://t to x + switch (endingUnit) + { + case 0: // 1000000000 + return weight * 1000000; + break; + + case 1: // 1000000 + return weight * 100000; + break; + + case 2: // 1000 + return weight * 1000; + break; + + case 3: //1 + return weight; + break; + + default: + break; + } + + default: + break; + } } double ConTemp() {