logischer fehler bei c++--> weshalb

Gast #1327853
Lesenswert?

1
int main()
2
{
3
  // testet auf Minimum dreier Ganzzahlen:
4
  int n1, n2, n3;
5
  cout << "Bitte geben Sie drei Ganzzahlen ein ";
6
  cin >> n1 >> n2 >> n3;  // z.B. 0 0 1
7
  
8
  if (n1 >= n2 >= n3)  //Ganzzahlen abgebildet!
9
    cout << "max = " << n1;  // 
10

11

12
  return 0;
13
}


Eingabe 0
        0
        1
Ausgabe: max=0

Weshalb 0 und nicht 1 ????



Laut Vorlesung trifft folgendes zu!:""Boolesche Ausdrücke besitzen 
numerische Werte
(FALSE -> 0, TRUE -> 1).
Die Auswertung zusammengesetzter Ausdrücke kann daher "verzwickt" 
sein."" Aber weshalb? Hab hier ja kein bool definiert sondern int!
Gast #1327864
Lesenswert?

jumper schrieb:

>   if (n1 >= n2 >= n3)  //Ganzzahlen abgebildet!

C und seine Derivate tun hier nicht, was du glaubst. Hier wird ein 
Vergleichsoperator ausgewertet und dann das Resultat fuer den naechsten 
verwendet. Das sollte eigentlich aus deinen Unterlagen hervorgehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren