Switch Case + Variable übernehmen ?
-
Hi,
wir sollen gerade an der UNI im Rahmen eines Projektes eine Schaltung für eine Ampel schreiben.
Jetzt müssen wir uns dafür C selbst beibringen und es klappt soweit auch ganz gut.
Allerdings habe ich gerade ein kleines Problem.
In folgender switch funktion, soll für die 3 Möglichkeiten also k,m & b das "a" immer neu definiert werden um es danach in die folgende Rechnung einzubinden.
Allerdings will das ganze nicht so wie es soll und ich erhalte für alle 3 Auswahlmöglichkeiten immer das selbe Ergebnis.
Wäre sehr dankbar wenn mich da jemand auf den Richtigen Weg bringen könnte.Mfg Sven
void gruenewelle() { switch (toupper(ft)) { case 'K': a = 2; break; case 'M': a = 3; break; case 'B': a = 6; break; default : printf ("Ungueltige Eingabe"); } printf ("\nDer Wagen braucht %.3lf Sekunden für die gesamte Strecke.",((summe-2*(((50/3.6)*(50/3.6))/(2*a)))/(50/3.6))+((50/3.6)/a)); }
-
Hallo,
von welchem Typ ist dennn dein: "ft"?
-
Meine Empfehlung wäre, deine kilometerlange Berechnung mal aufzudröseln in
Teilbereiche.
-
Guten Morgen,
also ft ist vom typ "char" und das mit der Auswahl klappt auch alles ganz gut, nur das was mich stutzig macht ist das egal ob ich k, m oder b wähle das endergebnis ist immer das gleiche.
Kopiere ich allerdings die Formel in jeden case für sich, dann erhalte ich auch 3 verschiedene Ergebnisse so wie es sein soll.Formel aufteilen kann ich ja später machen das hier ist gerade auch nur ne stationärer Fall wird alles noch erweitert.
Mfg
-
Duke87 schrieb:
Kopiere ich allerdings die Formel in jeden case für sich, dann erhalte ich auch 3 verschiedene Ergebnisse so wie es sein soll.
Also ich nicht.
Egal, was ich für Summe einsetze, erhalte ich trotzdem 3 mal das gleiche Ergebnis.
double summe = 134.; //9.648 printf ("\nDer Wagen braucht %.3lf Sekunden für die gesamte Strecke.",((summe-2*(((50/3.6)*(50/3.6))/(2*2)))/(50/3.6))+((50/3.6)/2)); //9.648 printf ("\nDer Wagen braucht %.3lf Sekunden für die gesamte Strecke.",((summe-2*(((50/3.6)*(50/3.6))/(2*3)))/(50/3.6))+((50/3.6)/3)); //9.648 printf ("\nDer Wagen braucht %.3lf Sekunden für die gesamte Strecke.",((summe-2*(((50/3.6)*(50/3.6))/(2*6)))/(50/3.6))+((50/3.6)/6));
Eine Aufteilung der Formel sorgt nun einfach dafür, dass solche Leute wie ich es auch verstehen
-
Duke87 schrieb:
Formel aufteilen kann ich ja später machen das hier ist gerade auch nur ne stationärer Fall wird alles noch erweitert.
Ignorier nicht die Tipps die dir gegeben werden! Vereinfache mal die Formel, dann dürfte dir etwas bezüglich der a-Abhängigkeit deiner Formel auffallen.
Das switch funktioniert wunderbar so wie es soll, nur deine Formel ist (vermutlich) falsch.
-
Ok ich hab nun meinen Fehler entdeckt....beim niederschreiben der Formel habe ich ein a zuviel eingebaut.
So das sich die beiden a's weggekürzt haben also war es egal was ich für a definiere
Ich entschuldige mich für die Verwirrung...Und der Tip mit dem Strukturieren der Formel hat mich dann in die richtige Bahn gebracht.
Danke euch allen !