Int Zahlen werden falsch wiedergegeben



  • Hallo,

    ich programmiere erst seit ca. einer Woche mit C++ und habe folgende Aufgabe bekommen:

    Lese 3 Zahlen ein.
    Gebe die Summe, das Produkt, den Durchschnitt und die größte/kleinste Zahl der drei Eingaben wieder aus.

    Soweit bin ich gekommen:

    #include <iostream.h>
    
    int main()
    
    {
      int a,b,c, minn, maxx; 	//Ganz Zahlen deklarieren
      float summe, average, produkt;  //Rechenoptionen deklarieren
    
      cout<<" Bitte gebe drei Ganzzahlen, ohne Punkt ein: "<<endl;
      cin>>a>>b>>c	;	// Zahlen a,b und c einlesen
    
      summe=a+b+c ;			 	//Summe bilden
      average=(a+b+c)/3 ; 		//Den Durchschnitt bilden
      produkt= a*b*c ;	  		// Das Produkt bilden
    
      if (a>b>c)            // Die Extremwerte prüfen
    	{ 	maxx=a;
    		minn=c;
    	}
    
      else if (a>c>b)
    	{
    		maxx=a;
    		minn=b;
    	}
    
      else if (b>c>a)
    	{
    		maxx=b;
    		minn=a;
    	}
    
    	else if (b>a>c)
    	{
    		maxx=b;
    		minn=c;
    	}
    	else if (c>b>a)
    	{
    		maxx=c;
    		minn=a;
    	}
    	else if (c>a>b)
    	{
    		maxx=c;
    		minn=b;
    	}
    
    	else
    	{ cout<<"\nMehrere Zahlen sind gleich, bitte drei verschiedene eingeben." ; }
    
    	cout<<"\nSumme aus den drei Zahlen: "<<summe<<endl;
    	cout<<"\nDurchschnitt aus den Zahlen: "<<average<<endl;
    	cout<<"\nDas Produkt der Zahlen: "<<produkt<<endl;
    	cout<<"\nDie groesste Zahl: "<<maxx<<endl;
    	cout<<"\nDie kleinste Zahl: "<<minn<<endl;
    
    	return 0;
    
      }
    

    Meine Probleme:

    // Eingabe der Zahlen 1 2 3 //

    Die Else funktion (bitte drei verschiedene Zahlen eingeben) wird wiedergegeben.
    Die größte Zahl laut PC: 4332
    Die kleinste Zahl laut PC: 4272

    Wo ist der Fehler? Da die Zahlen komisch sind, könnte es an der Formatierung liegen. Liegt es am int ?
    Und wo ist der if Fehler ?

    Vielen Dank im Vorraus

    phJ



  • Deine Bedingungen sind unsinnig - C++ unterstützt keine verketteten Vergleiche. Richtig sollte es if(a>b && b>c)... heißen.



  • if(a>b && a>c) { ... }
    

    http://tutorial.schornboeck.net/if.htm

    Du darfst immer nur eine Bedingung schreiben, oder mehrere mit "&&" (UND) oder "||" (ODER) verknüpfen. Sonst prüfst du etwas völlig falsches...



  • Danke, es hat geklappt 😃


Anmelden zum Antworten