Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Fehler beim fuellen von Feldern

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.09.2005, 20:49 Uhr
Deathwatcher




C++:
#include <iostream>
#include <ctime>
#include <stdlib.h>
#include <conio.h>

using namespace std;

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;

    for(i=0;i<=99;i++)
    {
        for(j=i+1;j<=100;j++)
        {
            if(zahlen[i] > zahlen[j])
            {
                temp=zahlen[i];
                zahlen[i]=zahlen[j];
                zahlen[j]=temp;
            }
        }
    }
}

void ausgabe(double *zahlen) //Ausgabe der Zahlenreihe
{
    int i;

    for(i=0;i<=100;i++)
    {
        cout << zahlen[i] <<endl;
    }
}

void main()
{
    double zahlen[100];
    char auswahl;

    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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.09.2005, 20:58 Uhr
ao

(Operator)


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.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.09.2005, 21:05 Uhr
Deathwatcher



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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.09.2005, 21:44 Uhr
imhotep
followed the white rabbit



Zitat von Deathwatcher:
Da drann liegt das nicht. Die For-Schleife zählt bis i<=100 das heißt das er bei 99 aufhört.


Genau das ist der Fehler
i<=100 zählt von 0 bis 100
i<100 zählt von 0 bis 99
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.09.2005, 22:01 Uhr
Deathwatcher



Vielen dank. Das war mein Fehler
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: