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