You are not logged in.

  • Login

1

Tuesday, March 9th 2010, 5:37pm

Zahlen im Array sortieren

Hallo @ all

WIr sollten heute in der Schule in einem Array die Zahlen sortieren. Dachte mir das so:
Z1<Z2 dann => tauschen und wieder von vorne anfangen. Habe so einen COde geschrieben.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
void tausche(int *piArray1, int *piArray2)
{
int iTemp;
 
iTemp = *piArray1;
*piArray1 = *piArray2;
*piArray2 = iTemp;
}
 
void Sortieren(int *paiArray, int iAnzahl)
{
int iX;
for (iX=0; iX<iAnzahl-1; iX++)
{
if (paiArray[iX]>paiArray[iX+1])
{
tausche(&paiArray[iX], &paiArray[iX+1]);
iX=0;
}
}
}
 
 
void Feldausgabe(int *paiArray, int iAnzahl)
{
int iX;
 
for(iX=0;iX<iAnzahl;iX++)
{
if (iX<9)
{
printf("0%d. Zahl: %d\n",iX+1, paiArray[iX]);
}
else
{
printf("%d. Zahl: %d\n",iX+1, paiArray[iX]);
}
}
}
 
void Feldeingabe(int *paiArray, int iAnzahl)
{
int iX;
for(iX=0; iX<iAnzahl; iX++)
{
paiArray[iX]=rand()%100+1;
}
 
 
}
 
int main(void)
{
int aiArray[100];
int iAnzahl=100;
 
srand(time(0));
 
Feldeingabe(aiArray, iAnzahl);
Sortieren(aiArray, iAnzahl);
Feldausgabe(aiArray, iAnzahl);
 
getchar();
}


Ein Problem ist aber noch drin. Wenn Zahl1 < Zahl2 bleibt diese an der Stelle stehen. Wenn Z1 > Z2 kommt Z2 an erste Stelle und beibt da auch immer Stehen. Sieht so aus als ob sie nicht mehr überprüft wird. Obwohl die Schleife ja immer bei 0 startet. Alle anderen Zahlen werden erfolgreich geordnet. Was ist daran falsch?

EDIT: Habe den Fehler gefunden. Setze iX=0 aber wenn die Schleife durchgelaufen ist setzt er sich wieder auf 1. Also iX=-1. Jetzt gehts.

Hoffe auf euer Hilfe. Viele Grüße
Crosaider

This post has been edited 2 times, last edit by "Crosaider" (Mar 9th 2010, 5:57pm)


2

Tuesday, March 9th 2010, 9:18pm

du willst also nur den array durchsortieren richtig?

wenn ja, dann mach das doch doch so das du den array via bubblesort sortierst und dann halt nebenbei klonst.....

3

Wednesday, March 10th 2010, 7:38am

hallo,

ohne deinen code näher angesehen zu haben hier zwei links für sortieralgorithmen:

Bubblesort
Quicksort

Es sind bei beiden artikel codebeispiele bzw. struktogramme dabei!
hoffe ich konnte weiter helfen!

thx, truespin

Similar threads

Social bookmarks