Sortieren von Zahlen - Algorithmus



  • Hallo liebe User

    Ich habe ein Problem mit meinem Programm, und zwar funktioniert es nicht so wie es funktionieren sollte^^

    Ich will das man beliebig viele Zahlen eingeben kann und das Programm sie dann von der kleinesten zur größten hin ordnet und dann in dieser Reihenfolge ausgibt.

    Mein Programm sieht bis jetzt so aus :

    #include "stdafx.h"
    #include "stdafx.h"
    #include <stdlib.h>
    #include <stdio.h>
    #include <math.h>
    #include <iostream.h>
    #include <string.h>
    
    int main(int argc, char* argv[])
    {
    	int j=0,jj=1,i,u=1,erg,help,n=1,e=0;
    	double a[100],p;
    
    cout<<"Wie viele Zahlen moechten Sie eingeben ?"<<endl;
    cin>>p;
    
    	for(i=1;i<=p;i++)
    	{
    		cout<<"Bitte geben Sie die "<< u++ <<" Zahl ein: "; cin>>a[e]; 
    
    		e++;
    
    	}
    
    	while (n < p)
    
    		{
    
    			    if (a[j] > a[jj]) 
                    {
                        help = a[j];
                        a[j] = a[jj];
                        a[jj] = help;
    
                          cout<<help<<endl;
    		        j=0;
    		        jj++;
    
                    }
    
    		if (a[j] < a[jj]) 
    		{
    		cout<<a[j]<<endl;
    
    		jj=0;
                    j++;
    
    		}
    
                    n++;
    
              }
    
    	system("PAUSE");
    	return 0;
    

    Das Problem : Er rechnet falsch sodass er die Zahlen falsch zurück gibt.
    ich denke mal das der Feheler irgendwo in der Funktion liegt aber ich finde in nicht.

    Danke schonmal im Vorraus



  • Debug doch mal. Dann müsstes du den Fehler schnell finden.



  • #include <iostream>
    #include <algorithm>
    #include <iterator>
    #include <vector>
    
    int main()
    {
        // eine dynamische Array-Klasse
        std::vector<int> zahlen;
        std::cout << "Geben Sie nun beliebig viele Zahlen und danach einen Buchstaben ein:" << std::endl;
    
        // beliebig viele Zahlen einlesen und in vector einfügen
        std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(zahlen));
    
        // vector sortieren
        std::sort(zahlen.begin(), zahlen.end());
    
        // kompletten vector mit leerzeichen getrennt ausgeben
        std::copy(zahlen.begin(), zahlen.end(), std::ostream_iterator<int>(std::cout, " "));
    
        // fehlerflags löschen und eingabepuffer leeren
        std::cin.clear();
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        // auf eine eingabe warten, verhindert automatisches schließen der konsole
        std::cin.get();
    }
    


  • Veraltete Haeder, der Versuch das Rad neu zu erfinden, wozu?
    EDIT: @Threadstarter, nicht an OhneName


Anmelden zum Antworten