void fuellen(double *zahlen) //Füllt das Feld mit zufälligen Zahlen { time_t sek; int j;
time(&sek); srand(sek); //Initialisierung des Zufallszahlengenerator anhand der Sekunden for(j=0;j<=100;j++) { zahlen[j] = (rand()*(rand()%15625))/rand(); //Erzeugt eine Zufallszahl indem er eine Zufallszahl mit eine Zahl zwischen 1 und 15625 multipliziert } //und anschließend durche eine Zufallszahl dividierd. }
void ripplesort(double *zahlen) //Die Funktion des Ripplesort Algorithmus { int i,j; double temp;
cout << "#################################" <<endl; cout << "#\t\t\t\t#\n#\tSortieralgorithmen\t#\n#\t\t\t\t#\n#\t\t\t\t#\n#\t\t\t\t#\n#\t\t\t\t#\n#\tR : Ripplesort\t\t#\n#\t\t\t\t#" <<endl; cout << "#################################" <<endl; //Meneu erweiterbar für die andern Algorithmen cout << "Auswahl: "; cin >> auswahl; switch(auswahl) { case'r': // Case Zeig für denn Ripplesortalgorithmus case'R': { system("cls"); //Löschen des Bildschirms fuellen(&zahlen[0]); //Aufruf der Funktion zum füllen des Feldes cout << "Unsortierte Zahlenreihe" <<endl; ausgabe(&zahlen[0]); //Ausgabe der unsortierten Zahlenreihe cout << "Dr" << char(129) << "cken Sie eine beliebige Taste um die sorierte Zahlenreihe aus zugeben"; getch(); system("cls"); //Löschen des Bildschirms cout << "Sortierte Zahlenreihe" <<endl; ripplesort(&zahlen[0]); //Aufruf der Funktion zum Sortiern ausgabe(&zahlen[0]); //Ausgabe der sorierten Zahlenreihe } break; default: { cout << "Falsche eingabe !"; } } getch(); }
Hab das Problem das beim der Kompilierung kein Fehler kommt, aber wenn ich das Programm ausführe kommt ganz am Ende ein Fehler. Kann mir jemand helfen ? Ich verzeifel da drann
Das Array zahlen[] hat 100 Elemente, indiziert von 0 bis 99. Der Index j in rippelsort() läuft aber bis 100 und greift damit hinterm Array-Ende ins Klo.
Da drann liegt das nicht. Die For-Schleife zählt bis i<=100 das heißt das er bei 99 aufhört.Dieser Post wurde am 20.09.2005 um 21:07 Uhr von Deathwatcher editiert.