Zahlen sortieren

Gast #4111192
Lesenswert?
• ▲
▼
Hallo, ich bin dabei etwas über Arrays zu lernen. Ich möchte das mein 
Programm 5 Zahlen ihrer Größe nach ordnet.Das macht es leider nicht. 
Hier ist mein Quellcode, vielleicht könnt ihr mir da helfen.Danke schon 
mal.

#include<iostream>
using namespace std;
int main (void)
{
int arr [5]= {17,-3,4,18,-9};
int hilf;
int i,j;

for (i=1;i <5;i++)
{
j=i;
while (j>0 & arr [ j ] <arr [ j -1 ] )
{
hilf = arr [ j ];
arr [ j ] = arr [ j - 1 ];
arr [ j - 1 ] = hilf;
j-- ;
}
}
cout << arr [ j ];
system ("Pause");
return 0;
}
#4111432
Lesenswert?
• ▲
▼
c anfänger schrieb:
> Es scheitert also an der Ausgabe.Hab schon vieles probiert jedoch kommt
> nichts gescheites bei raus

es scheitert an mehreren Sachen.
Zuerst daran, dass du beim posten keine Code tags verwendet hast.
Dann daran, dass deine Ausgabe nur ein element ausgibt.
Dann daran, dass du bit operatoren anstatt von logischen benutzt (was in 
diesem Fall aber wahrscheinlich sogar gutgeht)
Dann daran, dass du bis auf cout C anstatt c++ schreibst.

Tamy schrieb:
> Hallo,
>
> setze die Bedingung so ein
> while (j>0 & (arr [ j ] <arr [ j -1 ]) )
> {
> ---
> ---
> ---
> cout << arr [ j ];
> }

was soll es bringen einzelne Array Elemente während des Sortiervorgang 
auszugeben?

Ich würde es so in etwa schreiben:
1
#include <iostream>
2
#include <array>
3
#include <algorithm>
4

5
int main (void)
6
{
7
  std::array<int, 5> arr =  {17,-3,4,18,-9};
8
  int i,j;
9

10
  for (i=1; i < arr.size(); i++)  {
11
    for( j=i; (j>0) && (arr[j] < arr[j-1]); --j) { 
12
      std::swap(arr[j], arr[j-1]);
13
    }
14
  }
15

16
  for(const auto& s: arr){
17
     std::cout << s << ' ';
18
  }
19

20
  system ("Pause");
21
  return 0;
22
}
Moderator #4111550
Lesenswert?
• ▲
▼
Torsten Robitzki schrieb:
> Wenn C++ dann C++:
>
>  std::sort( arr.begin(), arr.end() );
>
> Bubble Sort ist echt nicht aus den Köpfen heraus zu bekommen ;-)

Darum geht es primär doch gar nicht:

c anfänger schrieb:
> Hallo, ich bin dabei etwas über Arrays zu lernen.

Aber selbst wenn er etwas über Sortieralgorithmen lernen wollte: Wird er
sein Ziel erreichen, wenn er einfach eine fertige Bibliotheksfunktion
aufruft? ;-)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.