Funktionsfrage in C++
-
tschuldigung hat einer ne ahnung wie ich 3 ganze Zahlen in absteigender Reihenfolge sortiere?Also wie die Funktion lautet nachdem ich 3 ganze Zahlen eingegeben habe,um sie später dann nach der Größe auszugeben?
-
kommt drauf an wie du sie gespeichert hast.
wenn sie in einem Array oder vector sind kannst du mit std::sort das Ganze sortieren. Wenn du sie in ein Set gepackt hast kannst du einfach drüber iterieren, da sie im Set schon sortiert sind.
-
http://www.cplusplus.com/reference/algorithm/sort.html
Das ist die Referenz zu std::sort, das Beispiel ist auch gleich mit Zahlen, also kannst dir das mal genauer anschauen.
-
Wenn die erste kleiner als die zweite ist, vertauschen.
Wenn die zweite kleiner als die dritte ist, vertauschen.
Wenn die erste kleiner als die zweite ist, vertauschen.
-
Hab es versucht(bin noch ein echter Anfänger),hab aber irgendwo einen Fehler drin.
Kriege am Ende nur die 3 mal die gleiche Zahl ausgegeben.
Will es erstmal nur sehr einfach halten, ohne sort und array usw.
Guckt mal bitte einer woran es liegt?#include <iostream>
using namespace std;
int main()
{
int a, b, c;cout << " Bitte geben Sie eine ganze Zahl ein: ";
cin >> a;
cout << " Bitte noch eine andere ganze Zahl eingeben: ";
cin >> b;
cout << " Und bitte noch eine andere ganze Zahl eingeben: ";
cin >> c;
if (a < b) b = a;
else a = a, b = b;
if (b < c) c = b;
else b = b, c = c;
if (a < b) b = a;
else a = a, b = b;
cout << a << ":" << b << ":" << c ;system("PAUSE");
return 0;
}
-
Als kleinen Denkanstoß zeige ich dir mal wie man mit simplen Mitteln 2 Zahlen absteigend sortieren könnte:
//main.cpp #include <iostream> using std::cout; using std::cin; using std::endl; int main() { int a, b, temp; cout << "Geben Sie 2 Zahlen ein:" << endl; cin >> a >> b; if (a < b) { temp = a; a = b; b = temp; } cout << a << " : " << b << endl; return 0; }Was in deinem Programm fehlt ist die Möglichkeit eine Variable in einer anderen "abzulegen" um somit die Werte von zwei Variablen miteinander tauschen zu können. Mit diesem Denkanstoß, meinem Codeschnippsel und MFK's Beitrag solltest du nun eigentlich auch 3 Zahlen problemlos absteigend sortieren können

-
bei mehr als 2 zahlen ist eine schleife aber besser geeignet, könnten ein paar sehr viele bedingungen werden.
-
Bumsfidel schrieb:
if (a < b) b = a;Das ist keine Vertauschung. Der alte Wert in b ist damit weg. Für eine Vertauschung brauchst du eine dritte Variable, wie in Mizars Beispiel, oder die Funktion std::swap.
Bumsfidel schrieb:
else a = a, b = b;Und das tut gar nichts, kannst du also auch weglassen. Es ist übrigens kein besonders guter Stil, statt einer Blockanweisung den Kommaoperator zu benutzen.
-
if (a<b)b=a
omg was soll das denn werden?
Hier sagst du, dass wenn a kleiner b b a ist O.o
Evt wäre nochmal ein Tutorial für dich geeignet....