C++ aufgabe *anfänger!
-
Man gibt 2 zahlen ein...und dann wir einem angezeigt welche zahl die groessere un welche die kleinere ist:
#include<iostream> using namespace std; int main() { int a; int b; cout<<"geben sie eine zahl ein\n"; cin>>a; cout<<"geben sie eine 2 zahl ein\n"; cin>>b; int max=a; if(b>max); max=b; int min=a; if(b<min); min=b; cout<<"Groesste zahl ist: "<<max<<"die kleinste zahl ist: "<<min<<"\n"; system("pause"); return 0; }-Warum bekomm ich immer nur a angezeigt?
-Kann mir jemand die musterlösung geben? (und dazu jeden einzelnen schritt erklären?!)PS: ich habe heut mit c++ lernen angefangen :--)
-
Hast ein paar ';' zu viel.
zb. hierif(b>max);Kurt
-
Das semikolon hinter dem ) der if anweisungen ist falsch
if(b>max);//<-<. kein semikolon sonst ist der if-block hier schon beendet und // die nachfolgende zeile wird immer ausgeführt//edit: naja, schnell is anders
-
Wenn du zwei Zahlen a,b vergleichst und die größere der beiden ermittelst, ermittelst du gleichzeitig die kleinere. Es reicht ein vergleich für 2 Zahlen!
if ( a > b ) max = a; min = b; else max = b; min = a;
-
Danke leutz...lag wohl an den semikolons!
-
curry-king schrieb:
Wenn du zwei Zahlen a,b vergleichst und die größere der beiden ermittelst, ermittelst du gleichzeitig die kleinere. Es reicht ein vergleich für 2 Zahlen!
if ( a > b ) max = a; min = b; else max = b; min = a;Also das dürfte dir einen Fehler wegen freistehendem else ausspucken

-
Der Code ist eher symbolisch gedacht, sonst hätte ich ihm Cpp-Tags verpasst.
C und C++ Code wird natürlich mit ordentlichen Einschüben geschrieben
-
@curry-king: Wir sind hier nicht bei python. Einrückungen sind dem Compiler egal. Bei if, else, for, while müssen Mengeklammern benutzt werden, wenn mehr als eine Anweisung umfasst werden soll!
@1neoman2: Führ' dir das mal zu Gemüte:
#include <iostream> using namespace std; template<typename T> void tausche(T &a, T &b) { T temp = a; a = b; b = temp; } template<typename T> void minmax(T &min, T &max) { if( max < min ) tausche(min, max); } int main() { int a = 12, b = 7; minmax(a, b); cout << a << " ist kleiner als " << b << endl; cin.get(); }