You are not logged in.

  • Login

1

Sunday, April 12th 2009, 3:52pm

Bubblesort Problem C++

Hallo erstmal, bin neu hier =)
Und habe schon ein Problem.
Und zwar lerne ich gerade C++ und da soll ich jetzt ein Sortierprogramm erstellen, das die Bubblesort-Funktionsweise anwendet.
Das habe ich dann auch getan:

C/C++ Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
using namespace std;
#include <stdlib.h>
 
const int MAX=5;
 
int main()
{
	int feld[MAX], hilf;
	int i, j, k;
 
	srand(56); // Zufalls Generator vorbereiten
	for (i=0; i < MAX; i++)
	{	//Array besetzen und Anzeigen
		feld[i] = rand() % 100 + 1;
		cout << feld[i] << " ";
	}
	cout << endl;
 
	for(i=MAX-1; i > 0; i--)
	{
		for (j = 0; j < i; j++)
		{
			cout << "(" << j << "-" << j+1 << "): ";
			if (feld[j] > feld[j+i])
			{ //Tauschen erforderlich
				hilf = feld[j];
				feld[j] = feld[j+1];
				feld[j+1] = hilf;
			}
			cout << feld[j] << " - " << feld [j+1] << " ";
		}
		//Zeige das Array in diesem Durchlauf
		cout << endl << MAX -i << ". Durchlauf beendet: ";
		for (k = 0; k < MAX; k++)
		{
			cout << feld[k] << " ";
		}
		cout << endl;
	}
}



Geht alles soweit gut. Konsole erscheint. Die Ausgabe lautet dann wie folgt:

Quoted

22 7 24 95 16
(0-1): 7 - 22 (1-2): 24 - 22 (2-3): 22 - 95 (3-4): 95 - 16
1. Durchlauf beendet: 7 24 22 95 16
(0-1): 7 - 24 (1-2): 22 - 24 (2-3): 95 - 24
2. Durchlauf beendet: 7 22 95 24 16
(0-1): 7 - 22 (1-2): 22 - 95
3. Durchlauf beendet: 7 22 95 24 16
(0-1): 7 - 22
4. Durchlauf beendet: 7 22 95 24 16

Und das Problem dabei ist, dass halt nicht alles richtig geordnet ist.
Ich hoffe ihr versteht mein Problem, und vielleicht kann mir ja jemand helfen ;)

MlG
SwiPP

This post has been edited 1 times, last edit by "SwiPP" (Apr 12th 2009, 4:06pm)


2

Sunday, April 12th 2009, 8:08pm

so auf die schnelle fällt mir nur das auf:

C/C++ Quellcode

1
if (feld[j] > feld[j+i])

du arbeitest die ganze Zeit eigentlich mit feld[j] und feld[j+1] doch an dieser Stelle prüfst du feld[j] und feld[j+i]... ich denk mal ein tippfehler, denn j+i macht wenig sinn ;)

3

Sunday, April 12th 2009, 9:27pm

Hey, super! Vielen Dank!
Genau das wars =)
Wie dumm von mir. >.<

MlG SwiPP

4

Sunday, April 12th 2009, 10:55pm

Wie dumm von mir. >.<
Sowas passiert jedem mal ;)

5

Tuesday, April 14th 2009, 12:00pm

Hat nichts mit dem Problem zu tun, aber entweder C oder C++ ;)

C/C++ Quellcode

1
2
#include <iostream>
#include <stdlib.h>

6

Tuesday, April 14th 2009, 12:11pm

Hmm die stdlib.h ist eindeutig nötig, dacht ich? Weil eine stdlib gibts ja nicht.

7

Tuesday, April 14th 2009, 12:41pm

Das Bezog sich auf die Dateiendung.

8

Tuesday, April 14th 2009, 12:43pm

Ja, mein ich ja auch. das.h, ist das etwa nicht nötig? Klar ist es eine C Bibliothek, abe rdoch auch kompatibel mit c++(sonst würde ja das Programm nicht funktionieren, right?;)

9

Tuesday, April 14th 2009, 12:54pm

Ja, mein ich ja auch. das.h, ist das etwa nicht nötig? Klar ist es eine C Bibliothek, abe rdoch auch kompatibel mit c++(sonst würde ja das Programm nicht funktionieren, right?;)


Sorry, das hab ich überlesen. Natürlich gibts die nicht, das ist eine ANSI C lib.
Dafür gibt es die cstdlib.

C/C++ Quellcode

1
2
#include <iostream>
#include <cstdlib>


Als kleine Anmerkung, dass du die libs nicht mischt.

http://www.cplusplus.com/reference/

10

Tuesday, April 14th 2009, 12:57pm

Hmm komisch. Denn in meinem Lernbuch ist eindeutig stdlib.h aufgeführt. Naja, habs ausprobiert und geht einwandfrei, dann danke ich für die Berichtigung =)
MlG SwiPP

Similar threads

Social bookmarks