IF Abfrage funktioniert nicht mehr
Hallo
Ich habe eine Frage zu einem, zu Übungszwecken, geschriebenen Programm und zwar handelt es sich um einen Rechenprogramm, dass zwei Brüche verrechnen kann.
Dazu muss ich ja einiges Abfragen und Steuern, ist es eine Multiplikation oder Addition.
Jetzt habe ich mich für das Steuern für Switch entschieden und fange so Multiplikation und Division ab.
Danach ist klar gibt es nur noch Addition und Subtraktion, dh. ich muss erweitern, das mache ich im default.
Und jetzt hab ich nach dem ganzen switch eine IF Abfrage auf + oder -, jedoch werden die irgendwie beide durchgearbeitet und ich kriege zwei Ergebnisse. Und das verstehe ich nicht.
Entwickelt auf LinuxMint mit Geany und gcc, wenn ich mal darf:
Ergebnis
Ich verstehe nicht, warum die letzte if Abfrage nicht greift, hat da jemand eine Idee?
Danke und Gruss
p
Ich habe eine Frage zu einem, zu Übungszwecken, geschriebenen Programm und zwar handelt es sich um einen Rechenprogramm, dass zwei Brüche verrechnen kann.
Dazu muss ich ja einiges Abfragen und Steuern, ist es eine Multiplikation oder Addition.
Jetzt habe ich mich für das Steuern für Switch entschieden und fange so Multiplikation und Division ab.
Danach ist klar gibt es nur noch Addition und Subtraktion, dh. ich muss erweitern, das mache ich im default.
Und jetzt hab ich nach dem ganzen switch eine IF Abfrage auf + oder -, jedoch werden die irgendwie beide durchgearbeitet und ich kriege zwei Ergebnisse. Und das verstehe ich nicht.
Entwickelt auf LinuxMint mit Geany und gcc, wenn ich mal darf:
#include <iostream>
using namespace std;
int main()
{
cout<<"Bruch Rechner 0.1"<<endl;
int zaehler1, zaehler2, zaehler1a, zaehler2a, zaehlerresult;
int nenner1, nenner2, nenner1a, nenner2a, nennerresult;
char operand;
cout <<"Bitte 1. Zähler eingeben" <<endl;
cin >> zaehler1;
cout <<"Bitte 1. Nenner eingeben" <<endl;
cin >> nenner1;
cout <<"Bitte 2. Zähler eingeben" <<endl;
cin >> zaehler2;
cout <<"Bitte 2. Nenner eingeben" <<endl;
cin >> nenner2;
cout <<"Bitte operand eingeben" << endl;
cin >> operand;
switch (operand)
{
case '*':
zaehlerresult = zaehler1 * zaehler2;
nennerresult = nenner1 * nenner2;
cout << zaehlerresult <<"/"<<nennerresult<<endl;
cout <<"hallo1";
break;
case '/':
zaehlerresult = zaehler1 * nenner2;
nennerresult = nenner1 * zaehler1;
cout << zaehlerresult <<"/"<<nennerresult<<endl;
cout <<"hallo2";
break;
default:
zaehler1a = zaehler1 * nenner2;
nenner1a = nenner1 * nenner2;
zaehler2a = zaehler2 * nenner1;
nenner2a = nenner2 * nenner1;
cout <<"hallo3";
}
if (operand = '+'){
zaehlerresult = zaehler1a + zaehler2a;
nennerresult = nenner1a;
cout << zaehlerresult <<"/"<<nennerresult;
cout <<"hallo4";
}
if (operand = '-'){
zaehlerresult = zaehler1a - zaehler2a;
nennerresult = nenner1a;
cout << zaehlerresult <<"/"<<nennerresult;
cout <<"hallo5";
}
return 0;
}
Ergebnis
Bruch Rechner 0.1
Bitte 1. Zähler eingeben
2
Bitte 1. Nenner eingeben
7
Bitte 2. Zähler eingeben
3
Bitte 2. Nenner eingeben
5
Bitte operand eingeben
-
hallo331/35hallo4-11/35hallo5
Ich verstehe nicht, warum die letzte if Abfrage nicht greift, hat da jemand eine Idee?
Danke und Gruss
p
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 323251
Url: https://administrator.de/contentid/323251
Ausgedruckt am: 04.11.2024 um 18:11 Uhr
2 Kommentare
Neuester Kommentar