Kleiner Informatiker Geschrieben 28. Mai 2014 Geschrieben 28. Mai 2014 Hi Leute, wollte mal ein Programm schreiben, welches das Pascalsche Dreieck ausgibt. Nach Eingabe einer Zahl z.B. 5 soll es bis zur fünften Zeile ausgegeben werden. Hier mal mein Quellqode: #include <iostream.h> #include <conio.h> #include <stdio.h> int pascal(int zeile, int spalte) { if(spalte == 1 || spalte == zeile) { return 1; } else { return (pascal(spalte -1, zeile -1) + pascal(zeile -1, spalte)); } } int main() { int wert; cout<< "Bitte geben Sie eine Zahl bis 5 ein."<<endl; cout<< "Wert: "<<endl; cin>> wert; for(int i=0; i<wert; i++) { cout<< "\n"; for(int j=0; j<=i; j++) { cout<< pascal(i,j)<<"\t"; } } getch(); return 0; } Ich hoffe einer von euch kann mir helfen.
Klotzkopp Geschrieben 28. Mai 2014 Geschrieben 28. Mai 2014 Du musst einen ziemlich alten Compiler am Start haben, dass er diesen Code schluckt. Auf jeden Fall terminiert deine Rekursion nicht. Der erste Aufruf ist pascal(0,0), was wiederum pascal(-1, -1) aufruft, was pascal(-2,-2) aufruft, und so weiter. Bis dein Stack überläuft. Bau mal folgende Zeile am Anfang deiner pascal-Funktion ein, dann siehst du es: cout << "Zeile: " << zeile << ", Spalte: " << spalte << "\n"; [/code] Oder benutz einen Debugger.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden