if-Abfrage funktioniert nicht



  • Hallo zusammen,
    ich bin blutiger C++ Anfänger und habe ein Problem mit folgendem Code:

    #include <iostream>
    using namespace std;

    int main()
    {
    char var;
    double a1, a2, a3; // Eingaben
    double b1, b2, b3; // Eingaben
    double Dx; // Zählerdeterminante
    double Dy; // Zählerdeterminante
    double D; // Nennerdeterminante
    double x, y;

    do
    {
    	cout << "Bitte geben sie die Konstanten a1, a2, a3, sowie b1, b2, b3 mit Nachkommastellen ein! " << endl;
    	cin >> a1;
    	cin >> a2;
    	cin >> a3;
    	cin >> b1;
    	cin >> b2;
    	cin >> b3;
    
    	Dx = (a3 * b2) - (a2 * b3);
    	Dy = (a1 * b3) - (a3 * b1);
    	D = (a1 * b2) - (a2 * b1);
    
    
    	if (((a1 || a2) || (b1 || b2)) == 0)
    	{
    		cout << endl;
    		cout << "Kein 2x2 System! " << endl;
    	}
    

    und zwar funktioniert hier die erste if-Bedingung nicht, dh. das Programm springt nicht in den Block obwohl eine der Variablen = 0 ist. Kann mir da jemand helfen?



  • @jand61

    Ich habe natürlich hier nur einen Teil des Codes kopiert...falls sich jemand wegen den nicht abgeschlossenen Klammern wundert.



  • Die Abfrage if (x || y) wird als if (x != 0 || y != 0) interpretiert.
    Du mußt daher jede Abfrage auf == 0 einzeln aufschreiben:

    if (a1 == 0 || a2 == 0 || b1 == 0 || b2 == 0)
    


  • oder du nimmst eine und-verknüpfung. die ist immer dann gleich 0, wenn mindestens einer gleich 0 ist.


Anmelden zum Antworten