Zahlen sortieren im C++

Marimi

Mitglied
Hallöchen!

Ich bin blutiger Änfänger und soll jetzt 3 Zahlen sortieren und zwar ohne logische Operatoren.
Hilfestellung aus dem Forum des Programmierpraktikums:
1. Der Programmierer vereinbart im Programmcode 3 Variablen, für die 3 zu sortierenden Zahlen.
2. Der Anwender gibt zu Beginn von jedem Programmdurchlauf 3 beliebige, gültige Zahlen ein.

Ob aufsteigend oder absteigend sortiert wird, bleibt jedem überlassen. Also das definieren krieg ich hin :) das ist ja auch easy. Könnt ihr mir weiterhelfen wie ich am besten sortiere als Anfängerin?

Danke euch, schönen abend
Marimi
 
Klar, am einfachsten geht das wohl mit Containern.

Code:
#include <vector>
//...
int i1, i2, i3;
//...
std::vector<int> ivec;
ivec.push_back(i1);
ivec.push_back(i2);
ivec.push_back(i3);
ivec.sort(); //aufsteigend

//Ausgabe:
for(std::vector<int>::iterator iter =ivec.begin(); iter!=ivec.end(); ++iter)
{
std::cout << *iter << " ";
}
//...




Gruß,

badday
 
Oh das ging ja schnell danke schon mal für deine rasche Antwort. Das ist erstmal mein Code wie er jetzt aussieht:
C++:
#include <iostream>
using namespace std;

int main() {
    double a;
    cin >> a;
    double b;
    cin >> b;
    double c;
    cin >> c;

Ja ich weiß da gäbe es sicher tausend schönere Codes aber ich bin ja auch noch anfänger. Gibt es noch mehr möglichkeiten einfach zu sortieren?

Lg Marimi
 
Ja, mit dem Vektor z. B.
Code:
#include <iostream>
#include <vector>
using namespace std;
 
int main() {
    double a;
    cin >> a;
    double b;
    cin >> b;
    double c;
    cin >> c;
    vector<double> dvec;
    dvec.push_back(a);
   dvec.push_back(a);
   dvec.push_back(a);
   dvec.sort();
   for(vector<double>::iterator iter=dvec.begin(); iter!=dvec.end(); ++iter)
   {
      cout << *iter << " ";
    }
}

Code ist nicht getestet ;)
 
das ! (not) ist ein logischer operator, das ++ ist ein inkrementoperator.
Aber wenn du schon keine Operatoren verwenden darfst, darfst du dann nen vector verwenden?
Kommt mir komisch vor.

Bist du noch am anfang vom lernen? Iwie kommt mir so vor^^
Wenn ich da falsch liege, entschuldige bitte^^
 
Man könnte auch std::map nehmen:
C++:
#include <iostream>
#include <map>

int main()
{
    std::map<double,double> map_values;
    std::map<double,double>::const_iterator it;
    double dValue;

    for( int i = 0; i < 3; ++i )
    {
        std::cout << i + 1 << ". Zahl eingeben: ";
        std::cin >> dValue;
        map_values[2 * dValue + i] = dValue;
    }

    for( it = map_values.begin(); it != map_values.end(); ++it )
    {
        std::cout << it->second << "  ";
    }

    return 0;
}
Gruß
MCoder
 
Ja ich bin ein extremer Grünschnabel was c++ angeht emine programmier erfahrung beschränkt sich lediglich auf css/html mit joomla.

Das schwere ist das in den Vorlesungen und im Praktikum anfänger und profis sind und die es ned schaffen des niveau auch für anfänger zu machen. Wenn ich ne Angabe für ne Hausübung lese bin ich schon fast am verzweifeln weil ich absolut nie den ansatz finde und dann soll ich via ad hoc beispiel noch was schaffen wo die anforderung auch ned anfänger gerecht ist ^^'.
 
Zuletzt bearbeitet:
Kannst du evtl. die ganze Angabe posten?
Iwie komm ich auf nichts...
Ich hab den Ansatz verfolgt, das mit mathematischen Regeln zu lösen, aber iwie hab ich da ein Problem mit^^
 
Zurück