Problem mit Selectionsort
Verfasst: Di Mär 08, 2011 11:21 pm
Hallo Zusammen.
Ich habe ein Programm geschrieben dass die Zahlen nach Reihenfolge sortieren soll und zwar absteigend.
Das Programm läuft solange man keine doppelte Werte hat und der Wert b hat merkwürdigen Einfluss auf das ganze, manche Zahlen akzeptiert er und manchen nicht, d.h. das bei manchen die richtigen Ergebnisse rauskommen und bei manchen nicht.
Hat jemand vielleicht ein Lösungsvorschlag?
Tut mir Leid wegen dem unleserlichen Code.
Ich habe ein Programm geschrieben dass die Zahlen nach Reihenfolge sortieren soll und zwar absteigend.
Das Programm läuft solange man keine doppelte Werte hat und der Wert b hat merkwürdigen Einfluss auf das ganze, manche Zahlen akzeptiert er und manchen nicht, d.h. das bei manchen die richtigen Ergebnisse rauskommen und bei manchen nicht.
Hat jemand vielleicht ein Lösungsvorschlag?
Tut mir Leid wegen dem unleserlichen Code.
Code: Alles auswählen
#include <stdio.h>
int main(void)
{
int zaeler =0;
const int big = 10;
int arr[big];
int newar[big];
int anzahl = 0;
int a = 0,b = 0;
int temp = 0;
// Arrays deklarieren
arr[0] = 345;
arr[1] = 435;
arr[2] = 150;
arr[3] = 45;
arr[4] = 16;
arr[5] = 3070;
arr[6] = 165;
arr[7] = 453;
arr[8] = 166;
arr[9] = 300;
while(zaeler < big)
{
a = 0;
b = big;
// b ist ein komischer Wert, der anscheinend zum Teil nicht gebrauch wird
while (a < big)
{
if(temp == 0)
{
if (arr[a] > arr[b])
{
b = a;
}
}
else
{
if (arr[a] > arr[b] && arr[a] < temp)
{
b = a;
}
}
a++;
}
newar[anzahl] = arr[b];
anzahl++;
temp = arr[b];
zaeler++;
}
zaeler = 0;
while(zaeler < big)
{
printf("%d\n",newar[zaeler]);
zaeler++;
}
return 0;
}