# Zahlen sortieren?in C++



## Sne@k (24. Februar 2004)

Wie soll ich denn das machen...hmm...haben ne Aufgabe in Programmieren bekommen und da uns unser Lehrer nix beibringt müssen wir das selber mit Hilfe des Inets machen. es geht sich um folgendes:

Am Anfang des Consolenprogrammes soll eingelsen werden wie viele Zahlen der User eingeben möchte dann sollen diese zahlen eingegeben werden.
Doch muss ich bei der Eingabe die Eingabe der Zaheln so gestalten das jede Zahl irgendwie abgegrenzt ist damit ich sie in einem Array speichern kann um später in dem  Array zu sortieren...und zum Schluss sollen die Zaheln in sortierter Reihenfolge ausgegeben werden....

N Bissl kenne ich mich ja in C++ aus aber mit welcher Funktion bzw. Methode(verwechsel die Begriffe imma) kann ich das realisieren? Quicksort,sort oder sowas? Wäre sehr nett wenn ihr mir dabei etwas helfen könntet....

Vielen Dank schon mal im voraus..... ;-) 

Post Scriptum:Quelltext wäre auch schön


----------



## Kachelator (24. Februar 2004)

> mit welcher Funktion bzw. Methode(verwechsel die Begriffe imma)


  Methoden sind Memberfunktionen von Klassen. 



> Quicksort,sort oder sowas?


 Ich würde std::sort verwenden, falls das möglich ist. 



> Am Anfang des Consolenprogrammes soll eingelsen werden wie viele Zahlen der User eingeben möchte dann sollen diese zahlen eingegeben werden.


 Du könntest auch bei jeder Eingabe prüfen, ob noch eine Zahl eingegeben wurde oder eine Endemarkierung wie z.B. ein Leerstring oder "ende". 



> Post Scriptum:Quelltext wäre auch schön


 Genau. Wie weit bist du denn schon? Ich möchte dir hier keine Komplettlösung vorsetzen.


----------



## Sne@k (24. Februar 2004)

sry aber ich bin bis jetzt noch net weiter gekommen als ein Struktogramm zu entwerfen..und sogar da komme ich nicht weiter....
Wie gesagt unser Lehrer bringt uns nix bei und wir müssen uns kümmern damit wir das selber lernen...das ist zwar nicht grade konform aber bei uns ist das so in der Berufsschule...Bin im ersten Ausbildungsjahr als FISY = Fachinformatiker Fachrichtung Systemintegration. Wir haben auch schon probiert ihn abzusetzen aber das geht leider net...
Na ja ich weiß wie ich die Sachen einlesen kann und das ich die Werte dann in ein Array speichern kann...aber dann kommen die probs.
Eingabemöglichkeiten:
1, 9, 23, 4 ,56 ,78, 2
1-9-23-4-56-78-2
1_9_23_4_56_78_2
1 9 23 4 56 78 2
wie unterscheide ich das und wie kriege ich die Werte einzeln in mein Array?
Könnte ja ein Beispiel + Aufforderung bevor die Eingabe stattfindet angeben...
aber dann weiß ich imernoch net ob ich das in einem rutsch einlesen kann ins array oder ent...müsste dann ja über einen Zeiger auf mein Array zugreifen können,ne?!
Brauche halt den sortieralgorithmus......
Thx trotzdem....
das mir n bissl  :-(  das ich das net kann müsste das ja können aber ich habs nie gelernt....


----------



## Kachelator (24. Februar 2004)

Einen Sortieralgorithmus kann ich dir nicht verraten, weil ich mich damit bisher  nur am Rande beschäftigt habe.

Für die Engabe könntest du so etwa vorgehen:

```
int i = 0;

  #define MAX_WERTE (20)
  int werte[ MAX_WERTE ];
  for ( i = 0; i < MAX_WERTE; ++i )
  {
    werte[ i ] = 0;
  }

  int zaehler = 0;
  char eingabezeile[ 80 ] = "";
  bool beenden = false;
  printf( "Bitte Werte eingeben oder Leerstring fuer Ende:\n" );
  while ( !beenden )
  {
    scanf( "%s", eingabezeile );
    if ( atoi( eingabezeile ) == 0 )
    {
      beenden = true;
    }
    else
    {
      werte[ zaehler++ ] = atoi( eingabezeile );
    }
  }
```
So besteht allerdings noch das Problem, das erstens der Zähler nicht geprüft wird, und dass keine Nullen benutzt werden können.
Hoffe, das hilft dir weiter, auch wenn die Eingabe nicht genau so erfolgt, wie du dir das vorstellst.


----------



## Sne@k (24. Februar 2004)

Ich danke dir für deinen Vorschlag!
Ich werde versuchen es nun umzusetzen...und hoffe natürlich das es klappt....muss zwar noch die paar Probs du du beschrieben hast in den Griff bekommen aber das schaffe ich schon...wenn du möchtest dann kann ich ja den fertigen Quellcode später reinstellen...wenn andere das selbe Prob haben wird es dann hoffentlich helfen...


Mfg Sne@k|Design


----------



## Test (24. Februar 2004)

Wie währe es mit nem Bubblesort?

```
for(zaehler=0; zaehler<AnzahlZahlenImArray-1; zaehler++)
{
 for(zaehler2=zaehler; zaehler2<AnzahlZahlenImArray-1; zaehler2++)
 {
  if( Array[zaehler2+1] < Array[zaehler2] )
  {
   halter = Array[zaehler2];
   Array[zaehler2] = Array[zaehler2+1];
   Array[Zaehler2+1]=halter;
  }
 }
}
```


----------



## Kachelator (24. Februar 2004)

> .wenn du möchtest dann kann ich ja den fertigen Quellcode später reinstellen


  Das wäre nett.


----------

