frage zum pascalschen dreieck
-
hallo könnte mir vllt jemand mal helfen beim darstellen auf der konsole des pascalschen dreicks? iredgn wie sieht da snicht so schön alles aus mit den nullen .. bin schon seit 6 stunden dran hab leide rkeinen plan wie ich da sbesser darstellen kann
Den code hab ich schon soweit:
#include <iostream> #include <stdlib.h> using namespace std; int p(int n, int k){ if((0<=k) && (k<=n)) if((k==0) || (k==n)) return 1; else return p(n-1,k-1)+p(n-1,k); else return 0; } void ws(int p){ for(int w=0;w<p;w++) cout<<(char)0; } int main() { for(int x=0;x<6;x++) { cout<<"\n"; for(int y=0;y<6;y++) { ws(x/2);cout<<p(x,y)<<" "; } } system("PAUSE"); return 0; }
-
achja und ws() war ein kläglicher versuch leerzeilen reinzubringen damit zB die erste 1 schön ind e rmitte steht. hat abe rnicht so geklappt

-
Mach doch einfach Leerzeichen..

std::cout << " "; //gibt ein Leerzeichen aus
-
So ist's glaub' ich besser:
#include <iostream> #include <stdlib.h> using namespace std; int p(int n, int k){ if((0<=k) && (k<=n)) if((k==0) || (k==n)) return 1; else return p(n-1,k-1)+p(n-1,k); else return 0; } void ws( int p ) { for(int w=0;w<p;w++) cout<<" "; // statt: (char)0; } int main() { for(int x=0;x<6;x++) { cout<<"\n"; ws(6-x); // statt: ws(x/2); in der Schleife! for(int y=0;y<=x;y++) // statt: for(int y=0;y<6;y++) { cout<<p(x,y)<<" "; } } system("PAUSE"); return 0; }vielleicht das 'neue Zeile' am Ende der Zeile und nicht am Anfang. Und wenn die Zahlen größer werden, lohnt sich der Einsatz von std::setw und der Gedanke daran, wie viel Spalten ein Eintrag im Dreieck einnimmt.
Gruß
WernerPS.: siehe meinen Beitrag zum Pascalschen Dreieck.
-
hi danke für die hilfe

-
erm.
müsste da nicht normalerweise noch nen prototyp angegeben werden bei den funktionen? haben wir jedenfalls so in der schule gelernt.
-
spreng schrieb:
erm.
müsste da nicht normalerweise noch nen prototyp angegeben werden bei den funktionen? haben wir jedenfalls so in der schule gelernt.Muss nicht sein. Ein Prototyp (Funktionsdeklaration) brauchst du lediglich, wenn du eine Funktion aufrufen willst, welche du noch nicht definiert hast. (Also wenn man den Code von oben nach unten liest)