Einzelnen Beitrag anzeigen
Ungelesen 11.11.12, 21:04   #1
HagenTronje
Erfahrener Newbie
 
Registriert seit: Dec 2010
Beiträge: 162
Bedankt: 18
HagenTronje gewöhnt sich langsam dran | 28 Respekt Punkte
Standard C Sortierschleife

Hab aus Langeweile ein kleines Programm geschrieben, in welches man ein paar Zahlen eingibt, und diese Sortiert angezeigt bekommt. Zumindest in der Theorie.
In der Praxis kommt bei Zeile 45(hier nun gekenntzeichnet mit --->) "C_Projekt funktioniert nicht mehr" und ich weiß nicht wieso.

Code:
#include<stdio.h>
#include<conio.h>

int main()
{

    double x[1000];//Einlesen aller Zahlen
    double y[1000];//Sortierte Zahlen
    int i=0;//zähler für for-Schleifen
    int i2=0;//weiterer zähler für for-schleifen
    int abbruch=1;//bei 0: Abbruch der Einleseschleife
    int akt_hoechste=0;//Speicher für die höchste zahl im aktuellen Sortierdurchlauf.

    for(i=0; i<1000; i++)
    {
        x[i]=0;    //Alle Elemente in x=0
    }
    for(i=0; i<1000; i++)
    {
        y[i]=0;    //Alle Elemente in y=0
    }

    printf("Zahlen sortieren\n"
           "Geben sie beliebig viele Zahlen ein(außer 0).\n"
           "Druecken sie nach jeder Zahl Enter.\n"
           "Beenden der Eingabe: Tippen sie statt einer Zahl einen beliebigen Buchstaben.\n");

//Einlesen:
    for(i=0; i>=0; i++)
    {
        abbruch=scanf("%lf",&x[i]);
        if(abbruch==0)
        {
            break;
        }
    }
    //ließt nacheinander Werte in x ein. Bei erfolglosem Lesen wird abgebrochen.


//Sortieren
    for(i=0; i>=0; i++)//i entspricht dem Element in y
    {
        for(i2=0; i2>=0; i2++) //i2 entspricht dem Element in x
        {
--->            if(x[i2]>y[i])
            {
                y[i]=x[i2];//Wert aus x wird in y geschrieben
                akt_hoechste=i2;
            }
        }
        x[akt_hoechste]=0;//Der Wert der in y verbleibt, wird gelöscht/auf 0 gesetzt
    }


//Ausgeben
    for(i=0; i>=0; i++)
    {
        printf("%lf\n",x[i]);
    }

//Beenden
    printf("Druecken sie eine beliebige Taste zum beenden.\n");
    char ende=getch();
    return 0;
}
Für Kommentare bezüglich Codestrukturierung, Kommentierung, etc. bin ich ebenfalls dankbar.
__________________
Blödsinnige Beiträge, bitte einfach löschen!
HagenTronje ist offline   Mit Zitat antworten