Veröffentlicht 28. Mai 201411 j 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.
28. Mai 201411 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.