Verstehe programm nicht



  • guten tag

    hab hier ein programm, wo ich 5 zufällig eingebene zahlen von klein nach groß ordnen muss.hab dieses programm vom lehrer bekommen aber verstehe den nicht so ganz.

    # include <iostream.h>
    void main ()
    {
    	char a[5];
    	int t,i,j;
    	for (i=0;i<5;i++)
    		cin >> a[i];
    
    	for (i=0;i<4;i++)
    		for (j=i+1;j<5;j++)
    			if ( a[i] > a[j])
    			{	t=a[j];
    			    a[j]=a[i];
    				a[i]=t;
    			}
    			for (i=0;i<5;i++)
    				cout << a[i] << "  " ;
    }
    

    den sinn des programms verstehe ich aber warum funktioniert der richtig? also wenn ich z.b die zahlen 5 7 3 1 0 eingebe, ordnet der die richtig. aber wie schafft das programm die 5 nochmal zu überprüfen, wenn i und j den wert (a[0]) schon übersprungen haben.

    ich hoffe ihr könnt mir das erklären.
    vielen dank



  • http://de.wikipedia.org/wiki/Bubblesort

    Und such dir einen neuen Lehrer, der Code ist ja mehr als peinlich.



  • void main und iostream**.h** sind völlig veraltet, zweiteres geht bei mir (MSVC 10) gar nicht mehr. Manuelles vertauschen und v.a. rohe Arrays sind auch schlechter Stil.
    Ich verstehe ja, wenn es dem Lehrer nur darauf ankommt, die Prizipien des Programmierens (z.B. Algorithmen) zu lehren, was ich dabei aber nie verstehe ist, wieso dazu C/C++ (ist doch hier so!) verwendet wird, statt einer weniger "technischen" Sprache, wie Python wo man nicht auf so viele bei diesem Lehrziel völlig unwichtige Details achten muss (Speicherverwaltung, ...).


Anmelden zum Antworten