Danke für die Kritik. Ich kriege selbst Augenkrebs wenn ich mir meinen code anschaue, aber ich weiss nicht genau wie ich was einzurücken habe. Ich habe jetzt versucht es besser zu ordnen.
Hier nur der "case m" der switch Anweisung:
printf ("Welche Rechenoperation für Brüche wählen Sie?\nTaste m: Multiplikation\nTaste a: Addition\nTaste b: Beenden\n");
printf ("Ihre Auswahl:");
while (zeichen != 'b' && zeichen != 'B') {
zeichen = getchar();
switch (zeichen){
case 'm': printf ("*Multiplikation*\nGeben sie den Zaehler des ersten Bruchs ein:");
scanf ("%i" ,&zaehler1);
printf ("Geben sie den Nenner des ersten Bruchs ein:");
scanf ("%i" ,&nenner1);
printf ("Geben Sie den Zaehler des zweiten Bruchs ein:");
scanf ("%i",&zaehler2);
printf ("Geben Sie den Nenner des Zweiten Bruchs ein:");
scanf ("%i",&nenner2);
produkt_zaehler = zaehler1 * zaehler2;
produkt_nenner = nenner1 * nenner2;
a=produkt_zaehler;
b=produkt_nenner;
//Euklid
if (a==0){
printf ("\n%i\t%i\t\t%i\n- *\t-\t=\t---\n%i\t%i\t\t%i \t\t ", zaehler1, zaehler2,produkt_zaehler, nenner1,nenner2,produkt_nenner);break;
}
while (b !=0){
if (a > b){
a = a-b;
}
else
{
b = b-a;
}
produkt_nenner_2 = produkt_nenner/a;
produkt_zaehler_2 = produkt_zaehler/a;
printf ("\n%i\t%i\t\t%i\t\t %i \n- *\t-\t=\t---\tgekürzt: ---\n%i\t%i\t\t%i \t\t %i \n", zaehler1, zaehler2,produkt_zaehler,produkt_zaehler_2, nenner1,nenner2,produkt_nenner,produkt_nenner_2);break;
}
1. Hier habe ich die While schleife die zum beenden des Programms gilt
2. Danach kommt die switch Anweisung zuerst mit dem "Case m"
3. Nun gebe ich die 4 zahlen ein er multipliziert den nenner1 mit Nenner 2 und zähler1 mit Zähler 2. Und speichert die Ergebnisse zusätzlich in den beiden Variablen a und b.
4.Dann kommt die if Abfrage (wie weit einrücken!?) Hiermit möchte ich erreichen wenn a=0 ist das er direkt die Ausgabe mit printf macht also das Ergebnis präsentiert. Hier wird der EUklid nicht angewandt. Und beendet den case m mit break.
5. Ansonsten kommt die while schleife, solange b !=0 ist (wie weit einrücken?) macht er den Euklidischen Algorithmus und teilt den den Zähler und Nenner des entstandenen Bruches durch den ggT.
6. Jet folgt ein printf und beenden des case m mit einem break.
Also was habe ich falsch gemacht?