Anfängerfrage



  • #include <iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    const int MAX=5;//Unfug
    int feld[MAX], hilf, i;//Pöse!
    
    void zufallszahlen()//ok, aber ohne globale Variablen
    {
         srand(time(0)); //Zufallsgenerator vorbereiten//hier falsch
        for (i=0; i<MAX; i++)
        {
            //Array besetzen und anzeigen
            feld [i] = rand() % 100 + 1;
            cout << feld [i] << " ";//hier bitte keine Ausgabe
        }
    }
    
    void tauschen()//ah, eine innere Schleife, an sich ok
    {//Ausgabe wegmachen
    
            for(int j=0; j<i; j++)
            {
                cout << "(" << j << "-" << j+1 << "):" ;
                if (feld[j]>feld[j+1])
                {
                    // Tauschen erforderlich
                    hilf = feld[j];
                    feld[j] = feld[j+1];
                    feld[j+1] = hilf;
                }
                cout << feld[j] << " - " << feld[j+1] << " ";
            }
    }
    
    void ergebnis()//Ja, so kann man ausgeben
    {
        // Zeige das Array in diesem Durchlauf
            cout << endl << MAX-i << ". Durchlauf beendet: ";//weg
            for(int k=0; k<MAX; k++)
            {
                cout << feld[k] << " ";
            }
            cout << endl;
    }
    void bubblesort()//nu wirds aber kindisch, viel zu überladen, das ist die main. 
    {
        zufallszahlen();
    
        cout << endl;
    
        for(i=MAX-1; i>0; i--) // MAX-1, weil die Karten immer mit dem rechten Nachbarn verglichen werden
            // d. h. nicht 4, sondern 3 Vergleiche
        {
            tauschen();
            ergebnis();
    
        }
        cin.clear();
        cin.get();
    }
    
    int main()
    {
    
        bubblesort();
    
    }
    


  • Die Kritik war sicherlich nicht das aufteilen in Funktionen...
    Aber ein globales i und hilf (feld am besten auch nicht)?
    Eine Sortierfunktion, sollte sicherlich ein Feld sortieren und nicht erstmal ein Neues erzeugen!
    Funktionen machen etwas. Ein Substantiv (zufallszahlen) als Funktionsname ist nicht schön.



  • bin ja auch noch n ziemlicher grünschnabel was c++ angeht. die ganzen konventionen sind mir noch nicht so geläufig.



  • Durch Klammern sollte man sich nicht durcheinanderbringen lassen können.

    Dass man Teile in Funktionen auslagert ist auch gut.

    Aber deine Formatierung ist Müll und deine globalen Variablen auch...


Anmelden zum Antworten