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. Zitieren
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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.